Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.55/11: Рейтинг темы: голосов - 11, средняя оценка - 4.55
0 / 0 / 0
Регистрация: 06.12.2012
Сообщений: 4
1
.NET 4.x

Вывод кириллических символов в Bitmap

06.12.2012, 20:23. Показов 2012. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Создаю таблицу из 256 символов и рисую её в Bitmap. Да вот надо, чтобы после 127-го шёл русский набор символов. Шрифту ставлю чарсет русский, но выводится чёрти что. Когда кодирую выводимую строку с помощью Encoding.GetEncoding(1251), получаю вопросительные знаки. Пробовала и локал ставить, и в настройках среды ковыряться, но решения не нашла. Подскажите, если кто знает.

Кусок кода, где рисуются символы:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Bitmap tmp = new Bitmap(width, height, System.Drawing.Imaging.PixelFormat.Format24bppRgb);
            Graphics graphicSymbols = Graphics.FromImage(tmp);
 
            char[] ASCIITable = new char[count];
            
            for (int i = 0; i < count; ++i)
            {
                ASCIITable[i] = (char)i;
                drawPoint.X = i % 32 * x;
                drawPoint.Y = i / 32 * y;
                GraphicSymbols.DrawString(ASCIITable[i].ToString(), drawFont, drawBrush, drawPoint);
            }
            tmp.Save("SymbolTable.bmp", System.Drawing.Imaging.ImageFormat.Bmp);
            SymbolTable.Source = System.Windows.Interop.Imaging.CreateBitmapSourceFromHBitmap(
                tmp.GetHbitmap(), IntPtr.Zero, System.Windows.Int32Rect.Empty, 
                BitmapSizeOptions.FromWidthAndHeight(width, height));
            
            graphicSymbols.Dispose();
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
06.12.2012, 20:23
Ответы с готовыми решениями:

Как создать bitmap из области (по координатам пикселей) другого bitmap
Здравствуйте. Подскажите пожалуйста как создать bitmap из области(по координатам пикселей) другого...

Нарисовать прошлый Bitmap на новом так, чтобы небыл растянут рисунок, если новый Bitmap больше размером
Короче пытался сделать такое дело: Рисую фигуры на форме, когда отпускаю левую кнопку мыши (когда...

Вывод кириллических символов из строки
Печатаю текст на русском языке и вывожу его в Label - все работает. Buf:=Edit1.Text;...

Корректный вывод кириллических символов
У меня есть бан лист для Minecraft(не мой, америкоса)! Как сделать чтобы он выводил русские буквы? ...

6
34 / 41 / 5
Регистрация: 07.09.2011
Сообщений: 108
07.12.2012, 16:07 2
Я делал так:

C#
1
2
3
4
5
6
string symbol = string.Empty;
for (byte i = 0; i <= 255; i++)
{
    symbol = Encoding.Default.GetString(new byte[] { i });
    // а дальше делаешь с символом, что необходимо
}
0
179 / 179 / 32
Регистрация: 23.11.2012
Сообщений: 344
Записей в блоге: 1
07.12.2012, 19:12 3
а drawFont где создается?
0
0 / 0 / 0
Регистрация: 06.12.2012
Сообщений: 4
07.12.2012, 23:45  [ТС] 4
Graf_Nosferatu, я попробовала ваш способ, но результат не изменился:
C#
1
ASCIITable = System.Text.Encoding.Default.GetString(new byte[] { (byte)i });
Вот посмотрите что у меня получается.
Изображения
 
0
0 / 0 / 0
Регистрация: 06.12.2012
Сообщений: 4
07.12.2012, 23:54  [ТС] 5
Doomer3D, я вызываю FontDialog либо прямо гружу шрифт из файла. Например, если создаю FontDialog fontDlg, то drawFont = fontDlg.Font. Использую в основном стандартные виндовские, которые кириллицу поддерживают. Что ж не так?
0
34 / 41 / 5
Регистрация: 07.09.2011
Сообщений: 108
10.12.2012, 12:59 6
А если так попробовать:

C#
1
2
3
4
5
6
string symbol = string.Empty;
for (int i = 0; i < 255; i++)
{
    Encoding enc = Encoding.GetEncoding(1251);
    symbol = enc.GetString(new byte[] { (byte)i });
}
0
0 / 0 / 0
Регистрация: 06.12.2012
Сообщений: 4
10.12.2012, 23:15  [ТС] 7
Graf_Nosferatu, это действительно то, что нужно! Благодарю. Я когда задавала вопрос, упоминала про Encoding.GetEncoding(1251), и что в итоге выводились вопросительные знаки.
Спасибо, что разобрались.
0
10.12.2012, 23:15
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.12.2012, 23:15
Помогаю со студенческими работами здесь

Краозябры кириллических символов в БД
Копался на форумах, но не смог найти нормальный ответ на этот вопрос. Вот таким вот образом я...

Поддержка кириллических символов
Привет! Программа выводит буквы алфавита пирамидкой. С латиницей все работает, но если поменять...

Отображение кириллических символов из файла
Доброго времени суток, уважаемые форумчане! У меня возник небольшой вопрос. Мне надо прочитать...

Некоректное считывание кириллических символов
Здравствуйте. Вот в такой функции: std::vector&lt;std::string&gt; CreateFileList(std::string p,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru