Изменение размера изображения в Delphi XE - PullRequest
0 голосов
/ 27 апреля 2011

Я получил изображение в формате JPEG, в котором 1020x780, я пытаюсь изменить его размер до 111x85 (что пропорционально), но получается пиксельное.

меня судят просто

a) Присвойте изображение компоненту TImage и установите свойство Scaled / Resize.

б) Код изменения размера здесь http://www.delphigroups.info/2/4/313095.html

c) Код изменения размера здесь http://www.swissdelphicenter.ch/torry/showcode.php?id=1896

Однако все они выходят пиксельными.

Если я изменю размеры в Фотошопе, это получится хорошо. Это было бы идеально, но я знаю, что они потратили много времени / кода на изменение размера, так что что-то даже на полпути было бы здорово.

Есть предложения?

Ответы [ 4 ]

5 голосов
/ 27 апреля 2011

В моем блоге я говорю об изменении размера изображений с помощью / реализации сглаживания.
Прочитайте статью и протестируйте код здесь . Он написан на испанском языке, но вы можете использовать автоматический перевод. В любом случае вы можете прочитать только код.

Смотрите разницу применять и не применять код:

enter image description here

Код работает с BMP, но вы можете сначала преобразовать изображение и применить его.

5 голосов
/ 27 апреля 2011

Взгляните на библиотеку Graphics32 . Он реализует различные алгоритмы передискретизации и преобразования изображений для 32-битных растровых изображений.

1 голос
/ 27 апреля 2011

Я успешно использовал библиотеку HiComponents ImageEn, чтобы изменить размер изображения примерно до 250 пикселей. Это было некоторое время назад, но я помню, что результаты были довольно приятными. http://www.hicomponents.com/main/products/products-imageenvcl - теперь это бесплатно и стоит посмотреть, если вы занимаетесь графическим программированием в Delphi.

1 голос
/ 27 апреля 2011

Вместо использования встроенного TImage для масштабирования вы можете использовать внешнюю библиотеку или компонент, например, ImageMagick или какой-либо готовый компонент. Для ImageMagick

существует как минимум одна оболочка Pascal

http://wiki.freepascal.org/PascalMagick)

, но я никогда не использовал его сам.

...