Стоят задачи:
1. Определить, что содержимое файла - картинка (в любом, в сущности, формате).
2. Показать на экране (опционально уменьшив, повернув и т.п.)
3. Сконвертить в другой формат (опционально уменьшив, повернув и т.п.)
Первое я делаю через file -bi filename (должен сказать image/xxx.
Второе я делаю через gdk-pixbuf, в том числе уменьшение. Поворот пока не сделал, ибо выяснилось, что халявы не будет - повернуть можно через libart или librsvg.
Третье я делаю через ImageMagick (зову convert). Оно понимает кучу форматов.
В текущей реализации есть проблемы (например, file говорит, что .xpm-файл - это application/octet-stream). Вопрос: как это (все три задачи) сделать ещё лучше (не прибегая к написанию софта для работы с графическими файлами, и не используя 20 разных библиотек типа libgif, libpng, libjpeg, ...)?