LibreOffice 4.x.x - тормоза с SVG

Автор greenman, 15 марта 2013, 06:37

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

ape

#30
Цитата: frob от 17 марта 2013, 18:20Имеет -- получается, что LO4 и LO3.6 по-разному трактуют содержимое, что приводит к потере данных.
Это не совсем так:
ЦитироватьДействительно, LO-4.x.x при пересохранении файла под другим именем добавляет растровые изображения в PMG-формате вставленных SVG-файлов в file.odg/Pictures/.. При этом в content.xml вставка рисунка
<draw:frame draw:style-name="gr1" draw:text-style-name="P1" draw:layer="layout" svg:width="8cm" svg:height="10.35cm" svg:x="11.5cm" svg:y="2.15cm">
- <draw:image xlink:href="Pictures/200000010000545600006D24A7271475.svg" xlink:type="simple" xlink:show="embed" xlink:actuate="onLoad">
 <text:p />
 </draw:image>
 </draw:frame>

приобретает такой вид
<draw:frame draw:style-name="gr1" draw:text-style-name="P1" draw:layer="layout" svg:width="8cm" svg:height="10.35cm" svg:x="11.5cm" svg:y="2.15cm">
 <draw:image xlink:href="Pictures/100002010000026E00000324983C42CB.png" xlink:type="simple" xlink:show="embed" xlink:actuate="onLoad" />
- <draw:image xlink:href="Pictures/200000010000545600006D24A7271475.svg" xlink:type="simple" xlink:show="embed" xlink:actuate="onLoad">
 <text:p />
 </draw:image>
 </draw:frame>

При этом, LibreDraw_4.x.x определяет и устанавливает DPI создаваемому PNG-файлу так, чтобы его размер был равен размеру вставленного SVG-файла (не исходному размеру изображения - !).
При пересохранении файла, созданного LO-4.x.x, LibreDraw-3.6.5 убирает SVG, потому что этот рисунок дублирует PNG и программой LDraw_4.х.x был размещёнется на странице в том же самом месте повторно. Из content.xml удаляется ссылка
Цитировать<draw:frame draw:style-name="gr1" draw:text-style-name="P1" draw:layer="layout" svg:width="8cm" svg:height="10.35cm" svg:x="11.5cm" svg:y="2.15cm">
 <draw:image xlink:href="Pictures/100002010000026E00000324983C42CB.png" xlink:type="simple" xlink:show="embed" xlink:actuate="onLoad" />
- <draw:image xlink:href="Pictures/200000010000545600006D24A7271475.svg" xlink:type="simple" xlink:show="embed" xlink:actuate="onLoad">
 <text:p />
 </draw:image>
 </draw:frame>
:( Фридрих, имхо, и без перевода всё бы понял...


frob

Цитата: ape от 18 марта 2013, 07:05
При пересохранении файла, созданного LO-4.x.x, LibreDraw-3.6.5 убирает SVG, потому что этот рисунок дублирует PNG

Вставленный в 3.6 SVG при проходе через 4.x и 3.6 превращается в PNG.
На мой взгляд это потеря данных.

ЦитироватьФридрих, имхо, и без перевода всё бы понял...
Он довольно сносно говорит по-русски, но в багзиллу LO всё-тки принято писать на английском.
Кроме того, заниматься таким багом весьма вероятно будет кто-то другой.

ape

#32
В качестве примера - 2 файла:
Novak_410_edit.odg - в этом файле context.xml отредактирован: в ссылках на изображения *.png и *.svg рисунки поменялись местами. Этот файл LO-3.6.5 откроет как надо, без потери качества.
Novak_410_edit_as_365.odg - это результат пересохранения предыдущего файла в LO-3.6.5. В этом файле сохранён только *.svg, а *.png удалён как дублирующий. Ссылки на *.png в content.xml теперь тоже нет.
--
ЦитироватьВставленный в 3.6 SVG при проходе через 4.x и 3.6 превращается в PNG. На мой взгляд это потеря данных.
Я не спорю, но боюсь, что "блокер" с моей стороны в этом случае даст обратный эффект: "Опять этот русский.."


[вложение удалено Администратором]

frob

Цитата: ape от 18 марта 2013, 07:58
Я не спорю, но боюсь, что "блокер" с моей стороны в этом случае даст обратный эффект: "Опять этот русский.."
А не надо "блокер".
Достаточно показать, что "брюки превращаются... превращаются брюки...".

ape

Mеханизм (алгоритм) ошибки довольно прост. LibO-4.x.x при вставке SVG создаёт дублирующий растр в PNG, подгоняя размер PNG под заданный изменением DPI. Для ускорения отрисовки {-?} PNG-рисунок помещается в тело файла, а в content.xml перед ссылкой на SVG добавляется ссылка на PNG (иначе, зачем огород городили?). В результате имеем регрессию. Автора бы в студию: хотел сделать как лучше, а получилось, как всегда..

ape

Пока не знаю, как сформулировать, но это действительно "блокер". LO-4.x.x при вставке SVG создаёт ODG файл, имеющий нарушение формата. ЛО-4 создаёт в ODG файле дополнительное дублирующее изображение PNG формата. При этом, в описании файла (content.xml) указано место для размещения только одного, PNG, изображения.

ape

#36
С учётом замечаний: https://bugs.freedesktop.org/show_bug.cgi?id=62461
@frob: Если у Вас есть возможность, то, пожалуйста, подтяните кого-нибудь к багу.

frob

Цитата: ape от 18 марта 2013, 12:50Если у Вас есть возможность, то, пожалуйста, подтяните кого-нибудь к багу.

"thorsten> frob_tea: ah I see - so 3.6 is the problem then"

Мне эта позиция непонятна, разъяснений пока не получил.


ape

#38
Если верить ReleaseNotes 4.0, то главный кандидат на "враг народа"
ЦитироватьMulti-image support in ODF allowing a bitmap + SVG representation eg. (Armin Le-Grand - Apache)
Если правильно помню, то реализация вставки SVG отличалась ещё на стадии ООо-3.4.0_бета_07.4.2011 vs LOdev-3.4.0.0.
Цитата: frob от 18 марта 2013, 18:24
Цитата: ape от 18 марта 2013, 12:50Если у Вас есть возможность, то, пожалуйста, подтяните кого-нибудь к багу.
"thorsten> frob_tea: ah I see - so 3.6 is the problem then"
Мне эта позиция непонятна, разъяснений пока не получил.
Торстен считает, что 3.6 работает с ошибками? Полный бред - пусть выполнит 11 пунктов. Если этого мало, могу добавить комментарий по ручному редактированию content.xml
Может быть Фридриху наябедничать?

frob

Цитата: ape от 18 марта 2013, 21:35Может быть Фридриху наябедничать?
1. Не на что
2. Бесполезно

Добавьте лучше к багу "исходный" файл сохранёный из 3.6, его же пересохранённый из 4.0, и ещё раз пересохранённый из 3.6.
Посмотрим удастся ли убедить переложить этот PNG в 'ObjectReplacements'.

Этот патч ALG возможно перетаскивал Микс. Попробую завтра пингануть.

ape

#40
Пока добавил 3 комментария: по ручному редактированию файла content.xml ; скриншот по потере качества вывода на дисплей; про ApacheOO-3.4.1.
--
Написал в Document Foundation Mail Archive  › LibreOffice  › QA
Если до воскресенья не будет хоть какой-нибудь реакции, забью "блокер" - зашевелятся (П.М.).
--
P.S. ИМХО. В ЛО-4 и АОО-3.4.1 закрывается загрузка графики после ссылки на 1-й, PNG, файл
Цитировать<draw:frame draw:style-name="gr1" draw:text-style-name="P1" draw:layer="layout" svg:width="8cm" svg:height="10.35cm" svg:x="11.5cm" svg:y="2.15cm">
 <draw:image xlink:href="Pictures/100002010000026E00000324983C42CB.png" xlink:type="simple" xlink:show="embed" xlink:actuate="onLoad" />
- <draw:image xlink:href="Pictures/200000010000545600006D24A7271475.svg" xlink:type="simple" xlink:show="embed" xlink:actuate="onLoad">
Но главное - это отсутствие места (выделено зеленью) для размещения 2-го изображения. Поэтому его на дисплее (печати) нет и быть не может. Зачем тогда оно в теле файла?

ape

Есть ответ Микса, пока проблема в понимании классического английского.

frob

Цитата: ape от 19 марта 2013, 18:45
Есть ответ Микса, пока проблема в понимании классического английского.

Ну, краткая версия такая: "Ой... кажется всё работает хуже, а не лучше" =)

Он предполагал, что добавление сохранения нескольких изображений будет влиять только на те открывашки ODF, которые сами рендерить SVG не умеют, а LO это вообще не коснётся.
Для таких приложений LO подкладывал свинью PNG.

Он похоже решил, что LO 4.0 рендерит SVG хуже чем 3.6 (что вполне возможно).
И считает это главной частью проблемы.

(Даже не хочется его разубеждать =)

ape

#43
Цитата: frob от 19 марта 2013, 21:00
Ну, краткая версия такая: "Ой... кажется всё работает хуже, а не лучше" =)
1. Спасибо
2. Ваши комментарии мне понятны  :)
3. Всё-таки (по времени открывания файлов) мне кажется, что беда ЛО-4 заключена в рендеринге, который, несмотря на наличие PNG, выполняется каждое открывание файла. Обратите внимание, что в content.xml изображение описано как SVG (прим., 21 марта. Это моя ошибка: "svg" описывает положение на странице изображения любого доступного формата  :():
Цитата: ape от 19 марта 2013, 07:47
<draw:frame draw:style-name="gr1" draw:text-style-name="P1" draw:layer="layout" svg:width="8cm" svg:height="10.35cm" svg:x="11.5cm" svg:y="2.15cm">
 <draw:image xlink:href="Pictures/100002010000026E00000324983C42CB.png" xlink:type="simple" xlink:show="embed" xlink:actuate="onLoad" />
- <draw:image xlink:href="Pictures/200000010000545600006D24A7271475.svg" xlink:type="simple" xlink:show="embed" xlink:actuate="onLoad">
В файле "пригласи_365", с которого всё началось, такой рендеринг 2-х SVG выполняется ЛО-4 2x2=4 раза - вот и тормоза... Интересно, если один и тот же SVG вставить 10 раз, то дождёмся ли мы с Вами от ЛО-4 итоговой экранной картинки?
Поэтому я нагло написал о бессмысленности переноса кода АОО в ЛО-4.

frob

Цитата: ape от 19 марта 2013, 21:16о бессмысленности переноса кода АОО в ЛО-4.

Переносить-то можно, но делать это бездумно нельзя, а если думно -- то может оказаться, что проще было самим реализовать.

АОО выложило страничку в wiki с картинками чего понафиксили. Я подёргал разных людей, но каким-то мистическим образом это всё свалилось обратно на Фридриха. Он несколько фиксов портировал, а про остальное сказал -- "ну его нафиг, один кейс фиксит, два ломает. надо фиксить по-другому."