k001
k001
:...

April 2032
        1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30

k001 [userpic]
ben, i need help

Стоят задачи:
1. Определить, что содержимое файла - картинка (в любом, в сущности, формате).
2. Показать на экране (опционально уменьшив, повернув и т.п.)
3. Сконвертить в другой формат (опционально уменьшив, повернув и т.п.)

Первое я делаю через file -bi filename (должен сказать image/xxx.

Второе я делаю через gdk-pixbuf, в том числе уменьшение. Поворот пока не сделал, ибо выяснилось, что халявы не будет - повернуть можно через libart или librsvg.

Третье я делаю через ImageMagick (зову convert). Оно понимает кучу форматов.

В текущей реализации есть проблемы (например, file говорит, что .xpm-файл - это application/octet-stream). Вопрос: как это (все три задачи) сделать ещё лучше (не прибегая к написанию софта для работы с графическими файлами, и не используя 20 разных библиотек типа libgif, libpng, libjpeg, ...)?

Comments

Можно обойтись одним ImageMagick'ом, который сам понимает все форматы. Просто конвертишь его в тот, который нужен тебе и всё.

Он, к сожалению, непригоден для идентификации картинки. То есть, скажем, если ему подсунуть пустой файл, то он скажет, что это GIF.

А зачем определять-то? Может обойтись конвертацией?

Глянь /etc/mime-magic

Ну я ж не буду руками его исправлять всякый раз?