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


Автор Тема: WMF to PNG  (Прочитано 1345 раз)

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

Оффлайн m-a-x-z

  • Автор темы
  • Новичок
  • *
  • Сообщений: 10
    • Просмотр профиля
WMF to PNG
« : 07 Март 2016, 22:00:40 »
Здравствуйте!

Мне необходимо конвертировать WMF файл в любой растровый формат, распознаваемый GD.
Установил:
apt-get install imagemagick
apt-get install php5-imagick
apt-get install libwmf0.2-7-gtk

Но команда
convert 1.wmf 1.phg
всё-равно выдаёт:

convert.im6: no decode delegate for this image format `1.wmf' @ error/constitute.c/ReadImage/544.
convert.im6: no images defined `1.png' @ error/convert.c/ConvertImageCommand/3044.

Как установить поддержку WMF правильно??

Оффлайн Peter_I

  • Старожил
  • *
  • Сообщений: 1801
    • Просмотр профиля
Re: WMF to PNG
« Ответ #1 : 07 Март 2016, 23:23:58 »
Установите libwmf-bin и попробуйте convert ещё раз,
но сам я этого не делал.
Пётр.

Оффлайн Azure

  • СуперМодератор
  • Старожил
  • *
  • Сообщений: 5661
  • elementaryOS 0.4 Loki, i3wm on Debian9
    • Просмотр профиля
Re: WMF to PNG
« Ответ #2 : 07 Март 2016, 23:26:57 »
WMF    Requires libwmf.
В Линукс можно сделать ВСЁ что угодно, достаточно знать КАК !

Оффлайн m-a-x-z

  • Автор темы
  • Новичок
  • *
  • Сообщений: 10
    • Просмотр профиля
Re: WMF to PNG
« Ответ #3 : 08 Март 2016, 08:47:29 »
Установите libwmf-bin и попробуйте convert ещё раз,
но сам я этого не делал.
Уже встало вместе с libwmf0.2-7-gtk. Видимо надо как-то хитро объяснять конверту, что "libwmf" уже можно пользоваться?

WMF    Requires libwmf.
Выше уже сказал, что libwmf установлен.
Кстати, по вашей ссылке написано libwmf, а сама ссылка ведёт на wv
Его тоже поставил apt-get install wv - нет реакции.

Оффлайн Peter_I

  • Старожил
  • *
  • Сообщений: 1801
    • Просмотр профиля
Re: WMF to PNG
« Ответ #4 : 08 Март 2016, 09:15:03 »
Не знаю, в чём причина, должно было быть достаточно libwmf-bin и libwmf0.2-7.
Вот список пакетов, содержащих wmf в имени:
libwmf-bin
libwmf-dev
libwmf-doc
libwmf0.2-7
libwmf0.2-7-gtk
wmf
wmforkplop
wmfrog
Попробуйте воспользоваться утилитами из libwmf-bin.
Пётр.

Оффлайн m-a-x-z

  • Автор темы
  • Новичок
  • *
  • Сообщений: 10
    • Просмотр профиля
Re: WMF to PNG
« Ответ #5 : 08 Март 2016, 09:32:53 »
Попробуйте воспользоваться утилитами из libwmf-bin.
Спасибо за совет:
root@coc:~# wmf2gd /var/www/tmp/3.wmf /var/www/tmp/3.png
ERROR: bbuf.c (102): wmf_file_open: unable to open file for reading.

Во избежание внешних помех
а) запускал от рута, для исключения проблем с правами
б) брал WMF файлы из пакета microsoft office, т.е. точно соответствующие спецификации формата

Гугл по ошибке ничего вменяемого не даёт...


Пользователь решил продолжить мысль 08 Март 2016, 09:37:50:
Нашёл фрагмент кода, дающий ошибку:
Цитировать
       
if ((file_info->file = fopen (file,"rb")) == 0)
       {      WMF_ERROR (API,"wmf_file_open: unable to open file for reading.");
              wmf_free (API,file_info);
              API->err = wmf_E_BadFile;
              return (API->err);
       }
Но это же не возможно! Ошибка происходит в функции fopen
При этом команда cat /var/www/tmp/3.wmf отрабатывается без проблем.
Какой подводный камень я мог упустить??
« Последнее редактирование: 08 Март 2016, 09:37:50 от m-a-x-z »

Оффлайн Azure

  • СуперМодератор
  • Старожил
  • *
  • Сообщений: 5661
  • elementaryOS 0.4 Loki, i3wm on Debian9
    • Просмотр профиля
Re: WMF to PNG
« Ответ #6 : 08 Март 2016, 12:13:25 »
Интересно. А если перенести файл в домашнюю папку и там попробовать переконвертировать?
В Линукс можно сделать ВСЁ что угодно, достаточно знать КАК !

Оффлайн m-a-x-z

  • Автор темы
  • Новичок
  • *
  • Сообщений: 10
    • Просмотр профиля
Re: WMF to PNG
« Ответ #7 : 08 Март 2016, 12:26:53 »
Скопировал.

root@coc:~# wmf2gd 3.wmf 3.png
ERROR: bbuf.c (102): wmf_file_open: unable to open file for reading.
root@coc:~#

при этом
root@coc:~# cat 3.wmf

работает...я в полном замешательстве.

Оффлайн Azure

  • СуперМодератор
  • Старожил
  • *
  • Сообщений: 5661
  • elementaryOS 0.4 Loki, i3wm on Debian9
    • Просмотр профиля
Re: WMF to PNG
« Ответ #8 : 08 Март 2016, 12:32:47 »
  • Мне не нравится Ваша привычка работать под рутом. Зайдите как нормальный пользователь, скопируйте файл в его домашнюю папку и производите с ним действия
  • Если попробовать конвейер cat 3.wmf | wmf2gd 3.png?
В Линукс можно сделать ВСЁ что угодно, достаточно знать КАК !

Оффлайн m-a-x-z

  • Автор темы
  • Новичок
  • *
  • Сообщений: 10
    • Просмотр профиля
Re: WMF to PNG
« Ответ #9 : 08 Март 2016, 12:40:26 »
Рут в данном случае нужен лишь для демонстрации отсутствия проблем с правами. Согласитесь, если бы не было рута - первый ответ был бы "проверь права"?

Эксперимент провёл на ещё одной "чистой" убунте, на которой 14.04LTS только с SSH сервером. Результат полностью аналогичный.

Для конвеера:
root@syslog:~# cat 3.wmf | wmf2gd 3.png
ERROR: bbuf.c (102): wmf_file_open: unable to open file for reading.

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




Оффлайн Azure

  • СуперМодератор
  • Старожил
  • *
  • Сообщений: 5661
  • elementaryOS 0.4 Loki, i3wm on Debian9
    • Просмотр профиля
Re: WMF to PNG
« Ответ #10 : 08 Март 2016, 12:53:32 »
А параметр -o не надо использовать?
В Линукс можно сделать ВСЁ что угодно, достаточно знать КАК !

Оффлайн m-a-x-z

  • Автор темы
  • Новичок
  • *
  • Сообщений: 10
    • Просмотр профиля
Re: WMF to PNG
« Ответ #11 : 08 Март 2016, 14:22:25 »
Да, была ошибка в командной строке. Правильно будет:
wmf2gd -o 3.png 3.wmf

Теперь для одного из файлов команда выполнилась - на выходе пустой белый квадрат (хотя изображение там было)

Для других файлов:
meta.c (179): wmf_header_read: this isn't a wmf file
Но это совершенно точно wmf или emf файлы. Если wmflib не распознаёт emf, то какую ещё библиотеку можно использовать?
Ведь де-факто emf это современная версия wmf

Оффлайн Peter_I

  • Старожил
  • *
  • Сообщений: 1801
    • Просмотр профиля
Re: WMF to PNG
« Ответ #12 : 08 Март 2016, 15:10:52 »
Вообще правильнее проверять fopen() на возвращение NULL, а не 0,
а для уточнения причины пользоваться переменной errno и функцией sterror_r().
И где можно найти конкретно эти wmf?
Пётр.

Оффлайн m-a-x-z

  • Автор темы
  • Новичок
  • *
  • Сообщений: 10
    • Просмотр профиля
Re: WMF to PNG
« Ответ #13 : 08 Март 2016, 15:25:28 »
Windows спокойно открывает эти файлы в Paint или Word.
WMF-lib первый файл - не признаёт формат, третий файл - конвертирует в белый квадрат (без стрелочек)

Т.к. форум тоже подохрительно относится к wmf - пришлось поменять расширение на txt

Оффлайн Peter_I

  • Старожил
  • *
  • Сообщений: 1801
    • Просмотр профиля
Re: WMF to PNG
« Ответ #14 : 08 Март 2016, 18:03:06 »
Это неправильные wmf, у них заголовки не такие, какие должны быть у wmf.
Я нашёл и скачал пример wmf-файла с правильным заголовком,
он показывается программой display и преобразуется программой convert, без замечаний.
Пётр.

 

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