Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.89/27: Рейтинг темы: голосов - 27, средняя оценка - 4.89
14 / 14 / 3
Регистрация: 15.06.2009
Сообщений: 36

Drawstring: изображение сохраняется некачественным

20.10.2009, 16:48. Показов 5719. Ответов 6

Студворк — интернет-сервис помощи студентам
C#
1
2
3
4
5
6
7
8
9
10
11
 Image img = new Bitmap(790, 1230);       
        Graphics g = Graphics.FromImage(img);       
        Rectangle fillRect = new Rectangle(0, 0, 790, 1230);        
        SolidBrush whiteBrush = new SolidBrush(Color.White);     
        Region fillRegion = new Region(fillRect);
        g.FillRegion(whiteBrush, fillRegion);               
        System.Drawing.Font drawFont = new System.Drawing.Font("Arial", 18);
        g.DrawString("Карта  " + det11, drawFont, Brushes.Black, 10, 25);
        img.Save(det14, System.Drawing.Imaging.ImageFormat.Jpeg);
        g.Dispose();      
        img.Dispose();
Данный код создаёт текст и сохраняет в файле - jpg, все хорошо получается, только почему-то вокруг букв создются какие-то точки-пикселы не белые, чуть сероватые, и они видны на белом фоне, а когда распечатываешь, то вообще сильно затеняют текст.

Как можно решить эту проблему? и почему они на одном компе менее насыщенные, а на другом более ?
Миниатюры
Drawstring: изображение сохраняется некачественным  
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
20.10.2009, 16:48
Ответы с готовыми решениями:

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

Не сохраняется изображение из pictureBox
Мне нужно сохранить изображение из pictureBox2 в .bmp файл. Но сохраняется только серый фон, вместо нужного изображения. Что я сделал не...

После поворота изображение сохраняется с ошибкой
После поворота изображение сохраняется с ошибкой и больше я не могу ее считывать. Посоветуйте ... В чем причина. Изображение я поворачиваю...

6
2 / 2 / 2
Регистрация: 19.10.2009
Сообщений: 43
20.10.2009, 19:06
А если попробовать сохранять не в Jpeg, а в какой-нибудь другой формат эффект тот же?

Добавлено через 1 минуту
Или шрифт попробовать сменить, скажем на Times New Roman?
1
14 / 14 / 3
Регистрация: 15.06.2009
Сообщений: 36
20.10.2009, 19:21  [ТС]
Менял шрифты, не помогало, а вот на png поменял и на домашнем компе исчезли, завтра ещё на работе попробую.
Спасибо.
0
sleepy
 Аватар для sleepwalker
78 / 53 / 6
Регистрация: 29.07.2009
Сообщений: 179
20.10.2009, 20:39
Лучший ответ Сообщение было отмечено как решение

Решение

dd22, проблема состоит лишь в том, что при сохранении в jpeg в данном случае степень сжатия идет максимальное, то есть максимально ухудшается качество, в следствии чего получаются эти помехи.
Решается установкой качества в 100%.
З.Ы. Сам когда-то разбирался со сжатием через этот форум)
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
 Image img = new Bitmap(790, 1230);
            Graphics g = Graphics.FromImage(img);
            Rectangle fillRect = new Rectangle(0, 0, 790, 1230);
            SolidBrush whiteBrush = new SolidBrush(Color.White);
            Region fillRegion = new Region(fillRect);
            g.FillRegion(whiteBrush, fillRegion);
            System.Drawing.Font drawFont = new System.Drawing.Font("Arial", 18);
            g.DrawString("Карта  ", drawFont, new SolidBrush(Color.Black), 10, 25);
            //Get the list of available encoders
            ImageCodecInfo[] codecs = ImageCodecInfo.GetImageEncoders();
            //find the encoder with the image/jpeg mime-type
            ImageCodecInfo ici = null;
            foreach (ImageCodecInfo codec in codecs)
            {
                if (codec.MimeType == "image/jpeg")
                    ici = codec;
            }
            //Create a collection of encoder parameters (we only need one in the collection)
            EncoderParameters ep = new EncoderParameters();
 
            System.Drawing.Imaging.Encoder myEncoder = System.Drawing.Imaging.Encoder.Quality;
 
 
            for (int x = 25; x < 101; x += 25)
            {
                //Create an encoder parameter for quality with an appropriate level setting
                ep.Param[0] = new EncoderParameter(myEncoder, (long)x);
                //Save the image
                img.Save(@"C:\my.jpg", ici, ep);
            }
 
            g.Dispose();
            img.Dispose();
3
Solmyr
10.11.2009, 02:18
помогите пожалуйста, не могу разобраться с проблемой
нужно сконвертировать текст в картинку (подходит только bmp формат)
на windows xp или 2008 server получается так:

http://testmyblog.ho.ua/pictures/xp.png

что меня совершенно устраивает. но, на window 7 изображение выглядит так:

http://testmyblog.ho.ua/pictures/7.png

рисую стандартным DrawString, цвет шрифта - черный, фон белый. пробовал для теста формат jpg, разницы нет. пробовал вариант sleepwalker'a (и применимо к своему коду, и копированием один в один (результат в W7 ), эффект при изменении ep.Param заметен, но максимальное качество все равно не лучше, чем на второй картинке.

вроде истина где-то рядом, но своим умом прийти пока не получается...
1923 / 428 / 41
Регистрация: 12.07.2007
Сообщений: 2,062
10.11.2009, 03:54
У вас один и тот же проект по разному работает на XP и на 7? Или изменения в коде есть?
0
Solmyr
10.11.2009, 10:57
Цитата Сообщение от Green Посмотреть сообщение
Или изменения в коде есть?
нет, код не меняется.

Добавлено через 35 минут
проверил только что на разных машинах, веде одинаковая ситуация, на xp четко, на windows 7 размыто...
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
10.11.2009, 10:57
Помогаю со студенческими работами здесь

Не сохраняется изображение
{$apptype windows} {$reference 'System.Windows.Forms.dll'} {$reference 'System.Drawing.dll'} Var myForm:...

Не сохраняется изображение в файл
Есть 2 файла: 1.bmp и 2.bmp. Загружаю в программу первый файл 1.bmp-работает. Дорисовываю на загруженном изображении...

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

Изображение не сохраняется в базу данных
Я использую mysql. Пытаюсь сохранить картинку в базу, вот код: if($_FILES==0&amp;&amp;$_POST){ funcsql(&quot;insert into `img`(`imgcol`)...

GDI+ неправильно сохраняется изображение
Всем доброго времени суток! Возникла проблема при сохранении BMP при помощи функций GDI+. Делаю последовательно вызовы LockBits и...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK сделайте это, JDK, то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Перейдите по ссылке:. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru