dquangsinh / fb2pdf

Automatically exported from code.google.com/p/fb2pdf
0 stars 0 forks source link

png-8 #105

Open GoogleCodeExporter opened 8 years ago

GoogleCodeExporter commented 8 years ago
Полупрозрачные PNG с индексированным 
альфа-каналом и черным основным фоном 
конвертируются в черные прямоугольники.
Образец проблемной иллюстрации см. в 
приложении.

Original issue reported on code.google.com by jurge...@gmail.com on 17 Jun 2010 at 8:59

Attachments:

GoogleCodeExporter commented 8 years ago
http://groups.google.com/group/fb2pdf-users/browse_thread/thread/82c1cbb8cbc9b63
2?hl=ru

Original comment by elicit.g...@gmail.com on 22 Jun 2010 at 6:50

GoogleCodeExporter commented 8 years ago
Влад, ты планировал посмотреть эту 
проблему, так что перевожу на тебя.

Original comment by kroko...@gmail.com on 23 Jun 2010 at 3:34

GoogleCodeExporter commented 8 years ago
Есть решение: прикрутить фильтр, 
перекодирующий PNG в BMP и восстанавливающий 
картинку. Можно использовать png2bmp 1.5.2 из 
пакета pmt
(http://sourceforge.net/projects/pmt/files/bmp2png/1.5.2/) с патчем 
(см. аттач), запускать с ключом "-w". Можно 
вызывать для декодирования файлов, можно 
как фильтр.

Original comment by elicit.g...@gmail.com on 24 Jun 2010 at 6:52

Attachments:

GoogleCodeExporter commented 8 years ago
Похоже, Python Image Library не умеет загружать ч/б PNG 
с alpha каналом, alpha канал просто 
игнорируется. У меня получилось 
переконвертировать этот PNG с помощью Netpbm. 
Финальная версия ещё готова.

Original comment by zlatk...@gmail.com on 24 Jun 2010 at 6:37

GoogleCodeExporter commented 8 years ago
zlatkarp > не умеет загружать ч/б PNG с alpha каналом
Это не ч/б, это палитровые. В книге 
http://www.flibusta.net/b/192080 - одна картинка 8-битная 
на 256 записей в палитре, остальные 4-битные 
на 7 записей.

Original comment by elicit.g...@gmail.com on 24 Jun 2010 at 7:45

GoogleCodeExporter commented 8 years ago
Более свежая версия программы для 
восстановления картинки - png2bmp 1.62 
(http://cetus.sakura.ne.jp/softlab/b2p-home/) с аналогичными 
изменениями:

Original comment by elicit.g...@gmail.com on 24 Jun 2010 at 9:03

Attachments:

GoogleCodeExporter commented 8 years ago
Опросом конкурирующих :-) разработок 
(http://www.the-ebook.org/forum/viewtopic.php?p=411444#411444, 
http://www.the-ebook.org/forum/viewtopic.php?p=411441#411441, 
http://www.the-ebook.org/forum/viewtopic.php?p=411502#411502) 
установлено, что проблема не в формате PDF 
или в ридере, а в Python Image Library. Есть ли от неё 
исходники и можно ли её подпатчить?

Original comment by elicit.g...@gmail.com on 25 Jun 2010 at 10:14

GoogleCodeExporter commented 8 years ago
Фикс для fb2tex.py (при помощи утилиты ImageMagic 
http://www.imagemagick.org) 
        # convert to grayscale, 166dpi (native resolution for Sony Reader) 
            if ct == 'image/png': 
                import subprocess 
                subprocess.call(["convert", fullfname, "-density", "68x68", "-type", "GrayscaleMatte", fullfname])
            else: 
                Image.open(fullfname).convert("L").save(fullfname, dpi=(166,166))

Original comment by victor.z...@gmail.com on 26 Jun 2010 at 2:53

Attachments:

GoogleCodeExporter commented 8 years ago
ImageMagick на нашем сервере выдает такие же 
чёрные прямоугольники вместо иллюстраций.  
Я специально возился и поставил самый 
свежий - не помогло. Похоже дело в какой-то 
внешней библиотеке. Буду использовать Netpbm, 
который там тоже установлен и работает как 
положено.

Ставить еще какие-либо дополнительные 
программки для решения этой проблема не 
хочется.

Original comment by zlatk...@gmail.com on 26 Jun 2010 at 7:19

GoogleCodeExporter commented 8 years ago
> ImageMagick на нашем сервере выдает такие же 
чёрные прямоугольники вместо иллюстраций.
Э... ImageMagick линкуется к libphg? Может, сам libpng на 
сервере старый/глюкавый?

Original comment by elicit.g...@gmail.com on 26 Jun 2010 at 9:33

GoogleCodeExporter commented 8 years ago
Есть образцы .pdf'ов, полученных из 
http://www.flibusta.net/b/192080 двумя разными 
конверторами - 
http://www.the-ebook.org/forum/viewtopic.php?p=411827#411827. Оба с 
нормальными картинками, без "малевичей". 
Смотрю Acrobat Reader'ом 6.0 и Acrobat Professional'ом той же 
версии. Хотел выдрать картинки, чтобы 
проверить их альфа-каналы, но не знаю как. :-( 
zlatkarp, проверь, пожалуйста, у себя - может, 
проблема у вьюера или ещё что... Если ОК - 
может, имеет смысл сконтачиться с viktorz 
(http://www.the-ebook.org/forum/profile.php?mode=viewprofile&u=12158) и 
допросить его подробнее?

Original comment by elicit.g...@gmail.com on 26 Jun 2010 at 10:43

Attachments:

GoogleCodeExporter commented 8 years ago
Куда уж подробнее, вот тот кусок кода 
сверху, вот c ним второй файл (где Zaliva в 
имени) и получен.

Original comment by victor.z...@gmail.com on 27 Jun 2010 at 2:32

GoogleCodeExporter commented 8 years ago
[deleted comment]
GoogleCodeExporter commented 8 years ago
[deleted comment]
GoogleCodeExporter commented 8 years ago
victor.zeltser, спасибо за подсказку! В Acrobat Reader 6 
тоже сработало; поменял цвет фона - видно, 
что в обоих документах илюстрации 
прозрачные и без ореолов, как в оригинале.
Поэкспериментировал с convert'ом из ImageMagick и 
Adobe Acrobat Professional'ом. Оказалось, что Acrobat 
принимает .png'шки с альфа-каналом на ура, а в 
палитровых напрочь игнорирует чанк tRNS 
(список значений альфы для цветов палитры) 
и использует только RGB из палитры (а они все 
равны нулю). А convert с параметрами из 
коммента #8, в частности, как раз и приводит 
.png в серый с альфа-каналом.
Кроме того, имеет смысл дообработать 
полученные после convert'а картинки 
программой optipng с ключом -nc (не редуцировать 
тип цвета) и уровнем оптимизации -o3 - это 
может дать (хотя может и не дать) пару 
десятков процентов выигрыша в размере 
файлов картинок.

zlatkarp > Похоже, Python Image Library не умеет 
загружать ч/б PNG с alpha каналом, alpha канал 
просто игнорируется.
Как раз с альфа-каналом PIL работает, а вот с 
tRNS'ом не хочет. :-( Скачал исходники PIL, 
посмотрю, можно ли вправить ей мозги. :-) 

Original comment by elicit.g...@gmail.com on 27 Jun 2010 at 10:49

GoogleCodeExporter commented 8 years ago
http://lib.rus.ec/node/228164 - готова программа для 
работы с прозрачными картинками. Три 
режима - прозрачность типа обсуждаемой и 
классическая ступенчатая, плюс 
восстановление назад до непрозрачных, 
переменная степень прозрачности, 
подписывание обработанных картинок для 
надёжности восстановления. Написана на Си 
и С runtime library, из win32-специфичного - только 
дообработка имён файлов. Надо?

Original comment by elicit.g...@gmail.com on 4 Jul 2010 at 9:02

GoogleCodeExporter commented 8 years ago
Спасибо, вроде не надо уже. Я не вижу чем она 
поможет в fb2pdf. Там всё работает, я 
использовал Netpbm чтобы убрать прозрачность. 
ImageMagick так и не заработал, наверное из-за 
старой libpng - ну и фиг с ним.

Original comment by zlatk...@gmail.com on 5 Jul 2010 at 5:53