Форум русскоязычного сообщества Ubuntu


За новостями русскоязычного сообщества и Ubuntu в целом можно следить на нашей страничке в Google+

Автор Тема: "Пустые" файлы-картинки после ImageMagick  (Прочитано 980 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн DikBSD

  • Автор темы
  • Новичок
  • *
  • Сообщений: 38
    • Просмотр профиля
Запускаю скрипт пакетного поворота вправо tif-картинок, лежащих в папке _In. Результат помещается в папку _Out.
Все работает. НО!!! Возникает "плавающая" ошибка преобразования - в папке с результирующими картинками некоторые файлы оказываются "пустыми" - размер, как у исходных, только ни один просмотрщик не отображает их. И всяких раз  - разные файлы.
На Windows такой проблемы не было никогда. Перешел полностью на Ubuntu - и теперь не мргу быть уверен, что файлы преобразовываются корректно, не "бьются". Постоянно проверять каждый файл из тысячь - утомительно.
В чем может быть дело?

Система: Ubuntu 11.10
ImageMagick:
$ convert -version
Version: ImageMagick 6.6.0-4 2011-06-15 Q16 http://www.imagemagick.org
Copyright: Copyright (C) 1999-2010 ImageMagick Studio LLC
Features: OpenMP

Скрипт:
#!/bin/sh
cd _In
for file in *.tif;
  do echo $file && convert -rotate 90 $file ../_Out/$file ;
done

Спасибо.

Оффлайн RazrFalcon

  • O_o
  • Старожил
  • *
  • Сообщений: 3144
  • Zombie Mod
    • Просмотр профиля
    • Я на GitHub
Re: "Пустые" файлы-картинки после ImageMagick
« Ответ #1 : 03 Январь 2012, 19:30:56 »
do echo $file && convert -rotate 90 $file ../_Out/$file ;
на
convert $file -rotate 90 ../_Out/$file ;
Gentoo + KDE, Official Windows Hater
Хотите помочь нашей вики: http://help.ubuntu.ru/wiki/fixme

Оффлайн DikBSD

  • Автор темы
  • Новичок
  • *
  • Сообщений: 38
    • Просмотр профиля
Re: "Пустые" файлы-картинки после ImageMagick
« Ответ #2 : 03 Январь 2012, 22:07:25 »
Спасибо за помощь. К сожалению, перестановка исходных файлов и опции imagemagick не помогла - все равно получаются "нечитаемые" файлы "нормального" размера, и каждый раз - все разные :( Вот пример такого файла - просто перевернул его на 90 градусов вправо. На 30 файлов где-то получается 3-4 "нечитаемых".
Выложил один такой на обменник, если интересно: http://rghost.ru/35726992

Оффлайн RazrFalcon

  • O_o
  • Старожил
  • *
  • Сообщений: 3144
  • Zombie Mod
    • Просмотр профиля
    • Я на GitHub
Re: "Пустые" файлы-картинки после ImageMagick
« Ответ #3 : 03 Январь 2012, 22:41:23 »
Да. И в правду пустой.

Можете выслать исходное изображение, для проверки.
И еще можете попробовать вот что:

Цитировать
convert $file -rotate 90 tif:../_Out/$file ;
Gentoo + KDE, Official Windows Hater
Хотите помочь нашей вики: http://help.ubuntu.ru/wiki/fixme

Оффлайн DikBSD

  • Автор темы
  • Новичок
  • *
  • Сообщений: 38
    • Просмотр профиля
Re: "Пустые" файлы-картинки после ImageMagick
« Ответ #4 : 03 Январь 2012, 22:58:07 »
Попробую...
Насчет "невидимых" изображений - я посмотрел - там в свойствах стоит число уникальных цветов - 1. Черный. Поэтому и не видно ничего :). Почему-то imagemagick так сконвертировал.
Насчет исходника - дело в том, если запускать 10 раз скрипт, 10 раз "черными" файлами окажутся совершенно разные изображения. Это - сканы книг серого цвета.
Если в терминале задавать convert file1.tif -rotate 90 file2.tif - проблем нет. Все файлы корректно преобразуются. Проблема возникает именно при пакетном преобразовании.
Может что у меня с системой?

Если хотите - я могу выслать архив ВСЕХ страниц книги, чтобы на нем прогнать скрипт - но он большой - метров 170 - там где-то 35 разворотов книги. Если нужно - напишите.
« Последнее редактирование: 03 Январь 2012, 23:07:55 от DikBSD »

Оффлайн RazrFalcon

  • O_o
  • Старожил
  • *
  • Сообщений: 3144
  • Zombie Mod
    • Просмотр профиля
    • Я на GitHub
Re: "Пустые" файлы-картинки после ImageMagick
« Ответ #5 : 03 Январь 2012, 23:09:14 »
Попробуйте так:
find ~/_In -iregex '.*\.tif' -exec convert {} -rotate 90 ../_Out/{} \;
Gentoo + KDE, Official Windows Hater
Хотите помочь нашей вики: http://help.ubuntu.ru/wiki/fixme

Оффлайн DikBSD

  • Автор темы
  • Новичок
  • *
  • Сообщений: 38
    • Просмотр профиля
Re: "Пустые" файлы-картинки после ImageMagick
« Ответ #6 : 03 Январь 2012, 23:25:29 »
В команде видимо неверно задан путь к результирующим картинкам - вот вывод:
convert: unable to open image `../_Out//home/dikbsd/_In/IMG_0040.tif': 0�( @ error/blob.c/OpenBlob/2489.Я к сожалению, не силен в bash.

Оффлайн ArcFi

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 15194
    • Просмотр профиля
    • aetera.net
Re: "Пустые" файлы-картинки после ImageMagick
« Ответ #7 : 04 Январь 2012, 00:03:30 »
Попробуйте так:
cd  ~/_In ; find -iregex '.*\.tif' -exec convert {} -rotate 90 ../_Out/{} \;
fixed

Оффлайн DikBSD

  • Автор темы
  • Новичок
  • *
  • Сообщений: 38
    • Просмотр профиля
Re: \"Пустые\" файлы-картинки после ImageMagick
« Ответ #8 : 04 Январь 2012, 06:24:12 »
Спасибо за помощь...
Не помогло... Переустановка imagemagick так же не помогла.
Самое интересное - сделал ту же операцию преобразования vbs-скриптом на Windows на виртуалке - все корректно преобразовалось - ни одного выходного файла с неверным числом уникальных цветов.
Думаю, что-то у меня все-таки с системой (я удалил Unity и поставил Гном 3 и подобие Гном 2)...

Пользователь решил продолжить мысль 04 Январь 2012, 06:28:55:
Попробую 2 пути:
1. Скомпилировать последнюю версию ImageMagick
2. Если не поможет - переустановить систему.
« Последнее редактирование: 04 Январь 2012, 06:28:55 от DikBSD »

Оффлайн ArcFi

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 15194
    • Просмотр профиля
    • aetera.net
Re: "Пустые" файлы-картинки после ImageMagick
« Ответ #9 : 04 Январь 2012, 06:44:22 »
Не помогло...
В смысле? Какая ошибка?

Оффлайн DikBSD

  • Автор темы
  • Новичок
  • *
  • Сообщений: 38
    • Просмотр профиля
Re: "Пустые" файлы-картинки после ImageMagick
« Ответ #10 : 04 Январь 2012, 06:56:47 »
Сам код для bashа прекрасно работает (я уже опробовал несколько вариантов цикла :) ).
Ошибка: при пакетном преобразовании -rotate 90 tif-файлов несколько выходных файлов получаются не 16-битными, как все остальные, а 8, и имеют число уникальных цветов - 1. Получается "квадрат Малевича" :). Эта "ошибка"- плавающего типа - каждый раз такими получаются разные файлы. При единичном преобразовании из терминала - все прекрасно получается. Такое ощущение, что IM после обработки нескольких файлов просто "сбивается", и в тэг прописывает 1 уникальный цвет вместо 256 изначальных.

Оффлайн ArcFi

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 15194
    • Просмотр профиля
    • aetera.net
Re: "Пустые" файлы-картинки после ImageMagick
« Ответ #11 : 04 Январь 2012, 07:05:45 »
Так, понятно.
Если проблеме подвержен любой случайно взятый файл, то можно провести следующий эксперимент:
1) вы скидываете 1 из файлов;
2) мы его клонируем на сотню (тысячу, если надо) и выполняем пакетное преобразование;
3) затем озвучиваются результаты и версия дистрибутива+imagemagick.

Оффлайн DikBSD

  • Автор темы
  • Новичок
  • *
  • Сообщений: 38
    • Просмотр профиля
Re: \\\"Пустые\\\" файлы-картинки после ImageMagick
« Ответ #12 : 04 Январь 2012, 07:35:36 »
Вот ссылка на 1 tif-файл -  разворот книги : http://rghost.ru/35731605
Вот ссылка на архив tif-сканов книги (170МБ), на которых и обнаружилась данная проблема: http://narod.ru/disk/36442472001/Princip.7z.html
Сканировал не я - мне прислали этот архив, поэтому какой был сканер и его настройки - сказать не могу.

Поэкспериментировал ещё - "квадрат Малевича" получается, если исходные tif-файлы преобразовывать в tif. Несколько раз преобразовывал исходные tif-файлы книги в png с разворотом на 90 - все прекрасно сработало.
Преобразование в иные форматы пока не пробовал.


Пользователь решил продолжить мысль 04 Январь 2012, 07:58:27:
Описывая выше проблему я немного ошибся. Исходные tif были 8bit. IM преобразовывает их в 16bit-ные. Так вот, у некоторых после преобразования IM "проставлял" 15 bit и 1 уникальный цвет.
Может эта информация поможет в поисках решения проблемы. Спасибо.

Пользователь решил продолжить мысль 04 Январь 2012, 08:08:48:
Нашел "костыль": если в опции команды IM добавить -depth 8, то tif-файлы получаются корректными. Это в принципе приемлемо для сканов книги, но для фотографий... Для них не хотелось бы уменьшать битность с 16 до 8.
Как я понял (если не ошибаюсь, конечно), IM не совсем корректно умеет преобразовывать файлы в 16 битный tif.
« Последнее редактирование: 04 Январь 2012, 08:08:48 от DikBSD »

Оффлайн ArcFi

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 15194
    • Просмотр профиля
    • aetera.net
Re: "Пустые" файлы-картинки после ImageMagick
« Ответ #13 : 04 Январь 2012, 09:36:00 »
Вот ссылка на архив tif-сканов книги (170МБ), на которых и обнаружилась данная проблема: http://narod.ru/disk/36442472001/Princip.7z.html
Скачал и обработал.
У меня всё прошло удачно.

Конфиг системы.
$ lsb_release -sd
"Fedora release 16 (Verne)"

$ uname -a
Linux arcfi-laptop 3.1.6-1.fc16.x86_64 #1 SMP Wed Dec 21 22:41:17 UTC 2011 x86_64 x86_64 x86_64 GNU/Linux

$ convert --version
Version: ImageMagick 6.7.0-10 2011-11-03 Q16 http://www.imagemagick.org
Copyright: Copyright (C) 1999-2011 ImageMagick Studio LLC
Features: OpenMP   

Сделал 5 раз в цикле:
$ DIR="Princip" ; for I in {1..5} ; do mkdir "$DIR$I" ; ls "$DIR" | while read ; do convert -rotate 90 "$DIR/$REPLY" "$DIR$I/$REPLY" ; done ; done
Проверил файлы через gthumb -- все изображения читаются.

Сравнение исходного и конечного файлов:
$ identify Princip{,1}/IMG.tif
Princip/IMG.tif TIFF 2504x3000 2504x3000+0+0 8-bit PseudoClass 256c 7.522MB 0.000u 0:00.000
Princip1/IMG.tif[1] TIFF 3000x2504 3000x2504+0+0 16-bit Grayscale DirectClass 15.04MB 0.000u 0:00.000

Нашел "костыль": если в опции команды IM добавить -depth 8, то tif-файлы получаются корректными.
В данном случае эту опцию предпочтительно использовать ещё и для предотвращения бессмысленного раздувания размера файлов.

Оффлайн DikBSD

  • Автор темы
  • Новичок
  • *
  • Сообщений: 38
    • Просмотр профиля
Re: \"Пустые\" файлы-картинки после ImageMagick
« Ответ #14 : 04 Январь 2012, 10:03:24 »
Огромное спасибо вам за помощь.
Я выложил некорректно сделанный IM файл: http://rghost.ru/35731990
Если не трудно - посмотрите, что получилось...
Вот мои "данные":
$lsb_release -sd
Ubuntu 11.10
uname -a
Linux dikbsd-ubuntu 3.0.0-15-generic #24-Ubuntu SMP Mon Dec 12 15:25:25 UTC 2011 i686 i686 i386 GNU/Linux
convert --version
Version: ImageMagick 6.6.0-4 2011-06-15 Q16 http://www.imagemagick.org
Copyright: Copyright (C) 1999-2010 ImageMagick Studio LLC
Features: OpenMP


Пользователь решил продолжить мысль 04 Январь 2012, 10:21:55:
Забыл написать, что во всех 5 созданных скриптом папок с обработанными картинками есть "непросматриваемые", "битые" или как их еще назвать. картинки, в некоторых - по несколько штук.
Ничего уже не понимаю. Может все дело в том, что у меня стоит более старая версия IM, чем у вас? Или - в системе что-то поломано...
« Последнее редактирование: 04 Январь 2012, 10:21:55 от DikBSD »

 

Страница сгенерирована за 0.061 секунд. Запросов: 24.