Ошибка растеризации градиента вставленного SVG фaйла

Автор ape, 31 мая 2017, 10:36

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

frob

Аааа... вон вы про что...

Как тут скастовать @mikekaganski ?

Думаю, что дело швах.
Старый ООо не умел SVG. Если в недревнем LO используется SVG, то при сохранении в формат старого ОО надо что-то делать.

Способ 1 "в лоб":
Растрировать SVG в PNG и на этом успокоиться.
Достоинства: быстро и просто. Недостатки: потеряны данные, поскольку теперь это растр, а не вектор.

Способ 2 "правильный":
Сконвертировать SVG в какой-нибудь векторный формат поддерживаемый старым ОО.
Достоинства: нет потери информации.
Недостатки: формат подходящий для ОО (SVM) не является подходящим ни с какой другой точки зрения.
Ну и кроме того конвертировать SVG в SVM, не самая простая задача и одновременно дурнопахнущая напрасной потерей времени.


Видимо получилось нечто среднее: вместо того чтобы конвертировать SVG->SVM, кто-то срезал углы и сохраняет копию PNG с расширением SVM.
Есть у меня подозрение, что если выкинуть этот SVM вообще, то ничего не изменится.
А вот можно ли положить на место SVG не поломав при этом открывание этого файла в ОО (так чтоб тот тупо брал PNG) -- этого не знаю.
Ну и может оказаться, что ОО всё равно этот SVG выкинет нафиг при пересохранении.

Как по мне, так надо просто выкинуть этот SVM и увеличить в полтора раза разрешение растрированного PNG.



mikekaganski

#16
Я попробовал с настоящим SVM, сгенерированным ЛО master, а потом сгенерированным OOo 3.1.1.

И OOo 3.1.1 не смог открыть ODG 1.0 с заменённым (правильным) SVM. Он просто складывается. А если этот SVM бросить в текстовый документ - вставляется нормально.

Если так - то в этом SVM ни в каком виде смысла нет.
С уважением,
Михаил Каганский

ape

#17
Цитата: frob от  2 июня 2017, 20:53
Как по мне, так надо просто выкинуть этот SVM и увеличить в полтора раза разрешение растрированного PNG.
А по мне - по-пиксельная растеризация в PNG . Причина банальная - есть не только маленькие по размеру SVG, но и монстры - LibreOffice_Initial_Icons-pre_final.svg, например. Он растеризуется (после ЛО-3.6.7) с разрешением 17dpi всего!!!

Цитата: mikekaganski от  3 июня 2017, 00:12
Я попробовал с настоящим SVM, сгенерированным ЛО master...
В приложенном Вами файле нет настоящего SVM - взгляните на скриншоты и Вам станет всё понятно.
Настоящий SVM - в zip-архиве.

mikekaganski

Хм. А как Вы получаете настоящий SVM? Мой был получен вставкой SVG в ООо 3.1.1 и сохранением оттуда в SVM.
С уважением,
Михаил Каганский

ape

#19
Цитата: mikekaganski от  3 июня 2017, 10:03
Хм. А как Вы получаете настоящий SVM?
LibreOffice-3.6.7 - желательно использовать Linux-версию, т.к. она не имеет 2-х ошибок растеризации, свойственных исключительно версии для ОС Windows:
1. В настройках сохранения файлов указываете "ODF версии 1.0\1.1".
2. Создаёте любой ODF документ: ***.odt, ***.odp или ***.odg
3. Вставляете как изображение SVG-файл.
4. Сохраняете созданный ODF документ.

frob

Цитата: ape от  3 июня 2017, 05:40А по мне - по-пиксельная растеризация в PNG

Как вы себе представляете "по-пиксельную растеризацию" вектора и чем она отличается от НЕ по-пиксельной?

ape

Цитата: frob от  3 июня 2017, 17:04
Как вы себе представляете "по-пиксельную растеризацию" вектора и чем она отличается от НЕ по-пиксельной?

Два PNG:
один, большой, - от Inkscape;
второй, поменьше раза в три (при ширине страницы в 42 см), - от LibODev-5.4.0.0.alpha0+.

mikekaganski

Цитата: ape от  3 июня 2017, 07:40
В приложенном Вами файле нет настоящего SVM - взгляните на скриншоты и Вам станет всё понятно.

Ну знаете... У меня ощущение, что в этой теме смешались в кучу кони, люди...

http://opengrok.libreoffice.org/xref/core/vcl/source/gdi/svmconverter.cxx#513
"SVGDI" - это header-magic для SVM, как бы это ни было странно.

http://opengrok.libreoffice.org/xref/core/vcl/source/gdi/gdimtf.cxx#2667
А "VCLMTF" - это GDI Metafile. Так что настоящий SVM таки в ответе 16.
С уважением,
Михаил Каганский

ape

Цитата: mikekaganski от  3 июня 2017, 21:32
Ну знаете... У меня ощущение, что в этой теме смешались в кучу кони, люди...
http://opengrok.libreoffice.org/xref/core/vcl/source/gdi/svmconverter.cxx#513
"SVGDI" - это header-magic для SVM, как бы это ни было странно.
http://opengrok.libreoffice.org/xref/core/vcl/source/gdi/gdimtf.cxx#2667
А "VCLMTF" - это GDI Metafile. Так что настоящий SVM таки в ответе 16.

Давайте пожалеем время и закроем обсуждение "кто есть кто":
Я посмотрел оба SVM (SVGDI и VCLMTF) в ИнфраОфисе-3. Оба файла отображаются растровыми изображениями одинакового качества. Векторной графики нет.
А если нет разницы в отображении и печати, то стоит ли выяснять, кто из этих SVM "самый правильный"?

frob

Цитата: ape от  3 июня 2017, 18:52
Два PNG:
один, большой, - от Inkscape;
второй, поменьше раза в три (при ширине страницы в 42 см), - от LibODev-5.4.0.0.alpha0+.

Слов нет.

ape

Q: @frob; @mikekaganski
Может быть запостить в Багзиллу о том, что ЛибО_4.0-5.4, создавая из SVG дополнительный растровый PNG в "xxx.odt(odg,odp)/Pictures/.." не учитывает пиксельный размер исходного файла, поэтому большие SVG преобразуются с потерей качества, что очень заметно при использовании страниц форматов А4 и меньших?