| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Звук, графика и видео > PNG ??????????????? |
| Автор: WaReZMEN 4.9.2007, 06:55 | ||||
| Вообщем ситуация такая почитал я про PNG поробовал все ок но есть вопросы: 1. Цвет изображения
как я прочел в хелпе чтоб сделать серую картинку нужно вместо COLOR_PALETTE поставить COLOR_GRAYSCALE. Но почемуто не работает. Может это потому что я пихаю туда уже цветную картинку??? 2. Как сделать 256 цветов и 16 бит. чтоб в фаил записывалось? Или тут тоже все из за-того что я пытаюсь саписать в картинку? 3. Есть ли возможность еще сжать картинку чтоб меньше весила? (CompressionLevel уже пробовал... )
|
| Автор: Alexeis 4.9.2007, 10:45 |
| Не думаю, что компонент умеет сам конвертировать форматы. Скорее всего ему нужно дать битмапку в соответствующем формате. PNG - плохо сжимает изображения фотографического качества. Хорошего результата можно добиться только для формата 256 цветов с специально подобранной палитрой. |
| Автор: Snowy 4.9.2007, 11:04 |
| Делая Assing, ты автоматом уничтожаешь существующую картинку и создаёшь новую из битмапа. Естественно она уже не серая, а имеет палитру битмапа. Менять палитру нужно уже у подгруженного изображения. |
| Автор: WaReZMEN 5.9.2007, 00:03 |
| С этим я разобрался для все кто незнает как я дописал к выше преведенному коду B.PixelFormat := pf4bit ... И еще вопрос как скалит изображение? |
| Автор: Snowy 5.9.2007, 10:53 |
| Из одного битмапа рисуешь на другой через StretchDraw |
| Автор: WaReZMEN 5.9.2007, 12:29 |
| Ок спс!!!! |
| Автор: Alexeis 5.9.2007, 14:33 |
С GIF я не мог перепутать так как в Gif 24 битного цвета нет. Ну ладно пусть не так уж плохо, но все равно не так хорошо как jpeg. Это известный факт проверенный многими, да и я сам проверял, так что не стоит тут даже обсуждать. |
| Автор: Snowy 5.9.2007, 14:42 | ||
Скриншот - не фотография. Много сплошных участков, которые отлично зипятся. Джпег лучше для разнородных данных. А с однородными png справляется лучше и без потери качества. |
| Автор: WaReZMEN 6.9.2007, 07:48 |
| Народ а StretchDraw(); почемуто не работает :( Мне нужно чтоб картинку с 1027х768 сделал 800х600 тоесть в параметрах функций пишу StretchDraw(rect(0,0,800,600),Исходная картинка). Врезультате он мне просто отрезает всю остальную картинку а не масштабирует .... как быть? |
| Автор: Snowy 6.9.2007, 10:37 |
| Значит неверные параметры передаёшь стретчу. Покажи код. Или вот тебе пример: http://forum.vingrad.ru/index.php?showtopic=80671&view=findpost&p=866002 |
| Автор: WaReZMEN 7.9.2007, 00:07 | ||||
| Все ошибку устранил правда так и не понял почему она была у меня ьыло написано
Заменил на
И все заработало |
| Автор: s-mike 7.9.2007, 16:25 | ||||
По моему сравнивать тут нечего. PNG обеспечивает беспотерьное сжатие, в отличие от JPEG. PNG можно сравнивать с BMP (RLE), TIFF, TGA, PCX. А вот какое сжатие нужно — с потерями или без, зависит от конкретного случая.
А какие размеры Image? |
| Автор: WaReZMEN 10.9.2007, 08:38 |
| 800 на 600 |