Искажается изображение при вставке в документ из буфера

Автор positivemax, 12 июля 2016, 09:31

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

positivemax

Ситуация следующая:
С экрана монитора захватывается изображение и вставляется в документ. При этом качество изображения в документе сильно снижается, скорее всего просто искажается изображение. (прикладываю оригинал и то, что получается)
Подскажите, пожалуйста, как это победить.

kompilainenn

в каком формате изображение "захватывается"?
И вообще распишите по шагам, как вы это делаете и какой софт для создания скриншотов используете
Поддержать разработчиков LibreOffice можно тут, а наш форум вот тут

McAaron

#2
Провел децел экспериментов с ванильными версиями 5.1.4.2 и 4.4.2.2.
Поведение при вставке растровых изображений у версий одинаковое.
Есть разница в результате при вставке растрового изображения в зависимости от того, сопровождается ли этот растр метрической информацией (tiff), или нет (png). Если метрической информации нет, картинка ужасная, если есть, более-менее приемлемая.
Выводы:
1) сохранять захваченный растр в формате с метрикой, например, в TIFF.
2) если Ваш скринкетчер умеет TIFF, но не умеет метрику, следует использовать тот, который умеет.
3) если буфер обмена не умеет метрику, все делать через файл.


P.S.
Итак, что мы имеем?
А имеем мы то, что в лучшем случае, не получив dpi-метрику из файла или буфера обмена, writer не опрашивает графическую систему на предмет реального разрешения экрана, а устанавливает dpi исходному растру с потолка. В результате алгоритм масштабирования растра работает неправильно и мы видим на экране каку.

В «лучшем случае» — это потому, что этот положеине поправимо с минимальными усилиями. Хуже, если writer вставляет растры не в экранное пространство графического конвейера, как тому учит нас партия, а в оконное, чтобы упростить жизнь и переложить перерисовку вставленного растра при масштабировании документа на общий графический конвейер приложения.
Экранное пространство не масштабируется в принципе, поэтому всякий раз при масштабировании оконного или предыдущего  пространства, если графическая подсистема не имеет отдельного растрового конвейера, приходится всякий раз отдельно масштабировать оригинальный растр и копировать результат в нужное место. При этом нужно накладывать ограничения на коэффициенты масштабирования для всех пространств конвейера с учетом dpi экрана, что, кстати, отсутствует у офиса.