LINUX.ORG.RU

Ресайз графики в GTK+

 , ,


0

2

Для сабжа отсылают к gdk_pixbuf_scale, cairo, imagemagick etc. Это преобразование самой картинки, и достаточно накладно.

Пример окна с гифками: http://pastebin.com/jKCvs5qB Сама гифка: http://rgho.st/6J2KP746Q

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

HTML: http://pastebin.com/mnYvYBPP

Не похоже, что там пиксельная трансформация. Как они это делают?


У тебя получается, что перед отображением все кадры гифки сначала масштабируются, а тока потом выводятся. Если гифка будет длинная, то вообще не дождёшься к тому же и память вся сожрётся. Не практично.

Попробуй сделать как-нибудь так, чтобы кадры выводились по мере их масштабирования. По-хорошему, тебе лучше или свой декодер гифок написать или либу найти, чтобы покадрово читать и выводить.

anonymous
()
Ответ на: комментарий от anonymous

Ну, это все таки не потоковое видео. В браузере страница с элементами лежит в памяти.

кадры выводились по мере их масштабирования

Если в лисе понажимать Ctrl+ Ctrl-, задержки перерисовки не чувствуются, и гифы не перескакивают на первый кадр. Какое-то общее изменение интерфейса. Не понятно куда копать.

slendy
() автор топика
Ответ на: комментарий от anonymous

Статичные пикчи, особенно если в highres, подгонять под размер окна, за счет масштабирования, тоже весьма ресурсоемко, я проверял.

slendy
() автор топика
Ответ на: комментарий от slendy

У тебя ещё MagickGetImagesBlob много занимает, так как заново кодирует картинку в первоначальный формат, а GTK потом её снова раскодирует - как бы бесполезная операция получается.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.