![]() |
|
#1
|
||||
|
||||
![]() Появилась такая задача - обработать много, действительно много, png-файлов. Думал, с Delphi всё будет проще, на деле оказалось иначе.
Использую компонент TPNGObject (кстати, когда я его устанавливал, у меня установился почему-то лишь PNGButton, но сейчас не об этом). Для начала решил, что надо научиться всех их уменьшать. Нашел пару функций, для перевода в bitmap и обратно. Bitmap уже уменьшаю. И сразу проблемы: 1. Потеря качества. Было: ![]() Стало: ![]() Не смертельно, но неприятно. 2. Альфа-канал не работал, как следует. Оно и понятно - при переводе в bitmap я пытаюсь получить к нему доступ, а его нет. Легко исправляется проверкой, есть ли прозрачность. (Есть и еще один способ, но в нем я не уверен). 3. Второй пункт я бы не писал, если бы не третий. Основной. Всю жизнь мне испортил. Короче, есть пара файлов. У них есть прозрачность. Но программа на них плющится и крешится, в bmp они не конвертятся - лишь по пикселям, а в таком случае неясно, откуда брать альфаканал. Они как непрозрачные, но прозрачность-то есть! Даже не меняя их, а лишь сохраняя после загрузки, я получаю нечто ужасающее: ![]() ![]() (Слева - то, что было). Я научился их отфильтровывать - параметр Header.ColorType у них равен трем. У обычных прозрачных - шести, у непрозрачных - трем. А хотелось бы обрабатывать, как и всё остальное. Я ламер, да? Может, есть еще какой-нибудь компонент, который работает с png более универсально? И да, почему тут пусто? А то, может, у меня устаревшая версия. Жизнь - это игра... Сюжет не очень, зато графика - отпад. Последний раз редактировалось IllVDG, 24.02.2011 в 17:18. |
#2
|
||||
|
||||
![]() Окей, тогда, возможно, кто-нибудь знает язык, подобный Delphi. На котором можно решить задачу.
Может, Abode AIR... Жизнь - это игра... Сюжет не очень, зато графика - отпад. |
#3
|
||||
|
||||
![]() Нашел еще один компонент, Graphics32 и какое-то дополнение к нему. Пока - лишь перевод в bmp и обратно:
![]() ![]() Так что предыдущий вопрос еще в силе. У меня в браузере результат непрозрачный. А если сохранить картинку - прозрачный, хоть и не такой, как оригинал. Жизнь - это игра... Сюжет не очень, зато графика - отпад. Последний раз редактировалось IllVDG, 24.02.2011 в 23:13. |
#4
|
|||
|
|||
![]() www.torry.net,
далее в строке поиска пишем png и проверяем полученные ссылки (у меня из первых 4х три - разные библиотеки для работы с png). |
#5
|
||||
|
||||
![]() Большое спасибо.
1. Multilayered PNG Array MPNG v.1.0. Многослойные PNG. 32-битные. Зачем мне это? 2. PNG Components for Code Gear C Builder 2007 v.1.0. У меня Delphi, а не Builder. 3. PNG Componets Plus v.1.00. Оболочка для pngimage, добавляет визуальные компоненты. Глюки pngimage я описал в первом сообщении. 4. PNG Delphi v.1.564. См. п.3. 5. PNG Icon Portfolio v.2010.4. Подпись "D1" меня настораживает. 6. Png Splash Form v.1.0. Нужна Delphi 2009. Просто визуальный компонент. Использует pngdelphi (который официально появился в Delphi 2009). 7. PNG to ICO Converter v.1.0. Это не то. Понятно, почему? 8. Transparent & PNG Support Image Button v.1.0. Мне не нужны кнопочки. Мне нужно работать с png-файлами. Далее: Shown from 1 to 8 of 8. Повторяю, большое спасибо. Вы мне очень помогли. Может, если я смог нарыть то, что я уже нарыл, причем не засветившись тут с этой темой ранее - я все-таки умею пользоваться поиском? Ну, хотя бы в рамках torry.net? Жизнь - это игра... Сюжет не очень, зато графика - отпад. |
#6
|
||||
|
||||
![]() А Graphics32 работает очень неплохо. Надо бы только с этими странными картинками разобраться.
Жизнь - это игра... Сюжет не очень, зато графика - отпад. |
#7
|
||||
|
||||
![]() Все, с первой проблемой (потеря качества) разобрался. Вторая ушла сама собой после перехода на Graphics32. С третьей либо сейчас разберусь, либо объявлю несущественной.
Всем спасибо ![]() Жизнь - это игра... Сюжет не очень, зато графика - отпад. |
#8
|
||||
|
||||
![]() Если не сложно то скинь исходники , я думаю многим будет полезно
![]() Последний раз редактировалось Admin, Сегодня в 10:32. |
#9
|
||||
|
||||
![]() Цитата:
Цитата:
Цитата:
Цитата:
Если стоит задача по обработке, то, как минимум, нужно ознакомиться со спецификацией PNG и почитать справку к TPNGImage. Для примера набросал две процедуры: 1) преобразование палитрового изображения в RGB 2) изменение размеров изображения в формате RGB PNGResize.rar |
#10
|
||||
|
||||
![]() Только что я окончательно разочаровался в своей идее и решил всё делать через фотошоп.
Сложность была в том, что есть особенные файлы, которые менять надо иначе. Вся их особенность - в небольшом комментарии к имени. В этих файлах трогать крайние пиксели нельзя. А как сделать это в фотошопе - еще не знаю. С моей программой получилась какая-то чепуха. В первом посте я описывал свои проблемы от первых двадцати файлов. Вот я их пофиксил, всё оформил, работает прекрасно, перехожу к оставшимся тысяче тремстам файлам... Короче, с ними я уже набрал не меньше трех проблем, каждая из которых стоит той, первой. То есть они так же какие-то особенные и закидывают меня ошибками. Грустно всё это. Поглядим, как справится фотошоп. Жизнь - это игра... Сюжет не очень, зато графика - отпад. |
#11
|
||||
|
||||
![]() Ну ни фига себе! Моя программа обошла фотошоп и по скорости, и по проценту успешных переводов!
Ой, как интересно... x128, Спасибо, сейчас посмотрю. Жизнь - это игра... Сюжет не очень, зато графика - отпад. |
#12
|
||||
|
||||
![]() x128,
Теперь всё работает! Большое спасибо! ![]() Жизнь - это игра... Сюжет не очень, зато графика - отпад. |
#13
|
||||
|
||||
![]() > 18:57:32 [i]: Программа запущена
> 18:57:46 [i]: Найдено файлов: 1347 > 18:59:54 [i]: Обработка завершена > 18:59:54 [i]: Успешно обработано: 1347 > 18:59:54 [i]: Не были обработаны: 0 > 18:59:54 [i]: В процентах: 100% Вот это крутизна! Спасибо еще раз!) Жизнь - это игра... Сюжет не очень, зато графика - отпад. |
#14
|
||||
|
||||
![]() Наверное, я тут всем уже надоел. Но у меня снова проблема. В этом архиве горстка файлов. Они нормально открываются и сохраняются. Но жутко ресайзятся. К примеру, у одного из них глубина цвета - два бита. Было нечто серое. На выходе - нечто зеленое.
Помогите, пожалуйста. Можете тыкнуть носом в поиск - но скажите, что туда вводить. Пожалуйста. http://dl.dropbox.com/u/13214493/bad_png.rar Жизнь - это игра... Сюжет не очень, зато графика - отпад. |
#15
|
|||
|
|||
![]() Цитата:
|