Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.02.2014, 18:25   #1
Dennis777
Форумчанин
 
Регистрация: 06.11.2009
Сообщений: 203
По умолчанию При открытии jpg искажается текст

Использую стандартный Имейдж в Rad Studio 2010. Подгружаю джпег на котором есть текст, сделанный в фотошопе, текст почему-то искажается.



Здесь, например, выпадает середина буквы е. Не критично, но неприятно. Быть может кто-то знает, с чем это может быть связано, и как можно исправить?
Интересный проект по изучению английского:
Английский в формате путешествия по США
Dennis777 вне форума Ответить с цитированием
Старый 17.02.2014, 19:03   #2
doktor255
Заблокирован
 
Регистрация: 31.03.2011
Сообщений: 976
По умолчанию

Вина скорее всего не в компонентах, а в исходном изображении. Точнее в чрезмерной компрессии.
doktor255 вне форума Ответить с цитированием
Старый 17.02.2014, 19:32   #3
Dennis777
Форумчанин
 
Регистрация: 06.11.2009
Сообщений: 203
По умолчанию

файлы сохранялись в максимальном качестве, без сжатия.

Такое впечатление, что текст деформируется в местах, где-то была направляющая линия в фотошопе.

Но дело в том, что во всех возможных редакторах фото отображается корректно, а через делфи - искажает. Никогда с подобным не сталкивался
Интересный проект по изучению английского:
Английский в формате путешествия по США
Dennis777 вне форума Ответить с цитированием
Старый 17.02.2014, 19:35   #4
doktor255
Заблокирован
 
Регистрация: 31.03.2011
Сообщений: 976
По умолчанию

Тоже не сталкивался. Как вариант, попробуй поиграть с PNG вместо JPG
doktor255 вне форума Ответить с цитированием
Старый 17.02.2014, 20:10   #5
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

Может быть, размер имейджа меньше, чем нужно?
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 17.02.2014, 20:18   #6
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от BDA Посмотреть сообщение
Может быть, размер имейджа меньше, чем нужно?
согласен.
Или пропорции Image не соответствуют пропорциям исходного изображения...
Serge_Bliznykov вне форума Ответить с цитированием
Старый 17.02.2014, 21:06   #7
doktor255
Заблокирован
 
Регистрация: 31.03.2011
Сообщений: 976
По умолчанию

AutoSize? Сомневаюсь что поможет. При изменении размеров/пропорций невлезающее изображение обрезается, а недостающее место заполняется пустыми пикселями.
doktor255 вне форума Ответить с цитированием
Старый 17.02.2014, 21:10   #8
blackstrip
Форумчанин
 
Аватар для blackstrip
 
Регистрация: 21.01.2012
Сообщений: 240
По умолчанию

Поставь у имейджа AutoSize в true, а Stretch в False. Возможно это жесткий стретч, выкидывающий некоторые строки пикселей в изображении.
blackstrip вне форума Ответить с цитированием
Старый 18.02.2014, 00:50   #9
Dennis777
Форумчанин
 
Регистрация: 06.11.2009
Сообщений: 203
По умолчанию

Да, действительно проблема в Стретче. Но почему он портит только буквы? За текстом и вокруг текста лежит фон - он идеально растягивается. А вот именно в буквах выпадают символы.

Может есть варианты, оставляя стретч включенным?
Приложение полноэкранное, и 1 картинка рисайзется под большинство вариантов. Как без стретча сделать - не знаю.

Просто действительно непонятно, почему фон изображения (со сложными графическими элементами), на который нанесен текст, не страдает. А текст деформируется.

Пойду попробую более жирный шрифт
Интересный проект по изучению английского:
Английский в формате путешествия по США

Последний раз редактировалось Dennis777; 18.02.2014 в 01:06.
Dennis777 вне форума Ответить с цитированием
Старый 18.02.2014, 07:30   #10
xrob
Форумчанин
 
Регистрация: 18.10.2010
Сообщений: 419
По умолчанию

Dennis777, на растровом изображении нет и не может быть текста =)
потому что растр - это просто набор пикселов,
а то, что некоторые из них вы видите как текст - это лишь ваше субъективное восприятие.
т.е. я это к чему - в данном контексте понятия "текст" не существует.
по крайней мере для компа не существует.
прога масштабирует изображение, обрабатывая пикселы по определенному алгоритму.
при простом алгоритме уменьшения изображения некоторые пикселы тупо выкидываются из растра и все.

приведу пример на числах:
Допустим у вас есть линейка чисел от 1 до 100.
и представим, что вы ее равномерно сжимаете в 10 раз.
в полученной сжатой линейке из исходных 100 пикселов останутся только 10.
какие? 1й, 10й, 20й ... 90й, 100й пикселы исходной линейки.

так же и с изображением, причем тут дело даже не в jpg, поскольку jpg при открытии преобразуется в такой же растр как и bmp, например.

попробуйте в тот же Image с теми же условиями загрузить то же изображение, тех же размеров,
но из любого другого формата (bmp, png) - результат будет такой же.
так что проблема 100% в кривом масштабировании.

попробуйте нарисовать вашу картинку напрямую на форму:
Form1.Canvas.Draw(10,10, JPG);
вот это и будет оригинальное изображение, которое вы загрузили.
уверен оно будет без косяков.

p.s.
и зачем вообще реализовывать текст в виде картинки?
так делать имеет смысл только если "текст" выполнен в виде сложнейших дизайнерских изысков


а если это просто текст, то почему бы не выводить его с помощью Canvas.TextOut?

Последний раз редактировалось xrob; 18.02.2014 в 07:36.
xrob вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Кракозябры при открытии MooNDeaR Windows Forms 1 13.03.2012 18:12
Кодировка utf-8 искажается, когда пропускаю через функцию artemhp PHP 2 10.11.2010 00:15
Скрытие панелей инструментов при открытии и отображение при закрытии документа Василий. Microsoft Office Word 0 23.10.2010 00:41
При открытии бразера... sqqa Паскаль, Turbo Pascal, PascalABC.NET 6 12.08.2009 14:01
Проблема при открытии базы при помощи ADO SlavaSH БД в Delphi 21 30.06.2009 16:51