Чтение Альфа Пикселя PNG. Быстрый путь через чистый Python? - PullRequest
1 голос
/ 14 ноября 2009

У меня проблема со встроенным 64-битным экземпляром Python, которому не нравится PIL. Прежде чем я начну использовать больше методов, чтобы заставить скомпилированный редактор изображений считывать пиксели для меня (такие как ImageMagick), я надеюсь, что кто-нибудь здесь может подумать о чисто Python-решении, которое будет сопоставимо по скоростям скомпилированными аналогами.

Теперь я знаю, что скомпилированные друзья всегда будут намного быстрее, но я надеюсь, что, поскольку я "просто" хочу прочитать альфа группы пикселей, что, возможно, достаточно быстро чисто Решение Python может быть придумано. У кого-нибудь есть яркие идеи?

Хотя я пробовал PyPNG, и это далеко слишком медленно, поэтому я не ожидаю каких-либо волшебных решений. Тем не менее, я должен был спросить.

Спасибо за любые ответы!

И просто для справки, изображения, которые я буду читать, будут в среднем около 512 * 512 до 2048 * 2048, и я буду читать в любом месте от одного до всех пикселей альфа (умноженное на несколько миллионов раз) , но значения могут быть сохранены, поэтому повторное чтение еще не завершено).

Ответы [ 2 ]

2 голосов
/ 14 ноября 2009

Для извлечения данных из PNG требуется распаковать данные и распаковать их. Они, вероятно, будут слишком медленными в Python для вашего приложения. Одна из возможностей - начать с PyPNG и избавиться от всего, что вам не нужно. Например, он, вероятно, хранит все данные, которые он читает из PNG, и некоторые из медленных скоростей, которые вы видите, могут быть связаны с выделением памяти.

0 голосов
/ 05 января 2010

Когда вы говорите, что PyPNG слишком медленный, насколько он медленный? Иными словами, насколько быстро будет достаточно быстро? PyPNG не делает ничего глупого, чтобы замедлить себя, но он написан на Python.

Убедитесь, что вы используете read () для чтения изображения построчно, и убедитесь, что вы используете row [3 :: 4] для извлечения альфа-канала. Извлечение альфа-канала с использованием записи срезов не медленнее, чем чтение всего изображения.

Я добавил заметок к документации PyPNG о его скорости .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...