масштабирование векторных изображений через librsvg - PullRequest
3 голосов
/ 24 сентября 2011

Возможно ли масштабировать svg до получения его пиксельного буфера через librsvg?Я вижу API, например rsvg_pixbuf_from_file_at_zoom, но он помечен как устаревший.

Есть ли другой способ сделать это?Я хочу, если возможно, избегать использования Каира.

1 Ответ

4 голосов
/ 25 сентября 2011

У вас не так много вариантов, либо:

  • с использованием устаревшей функции, такой как rsvg_pixbuf_from_file_at_size () (что не , что плохо, маловероятно, что эта функция скоро исчезнет)
  • или с помощью объекта RsvgHandle с rsvg_handle_new_from_file () и rsvg_handle_render_cairo () на поверхности Каира создайте в нужном измерении

Вы можете ограничить использование cairo до минимума, если вам нужен GdkPixbuf в конце:

  • создание RsvgHandle с помощью rsvg_handle_new_from_file ()
  • создание контекста cairo и настройка нужной вам матрицы преобразования
  • рендеринг SVG с помощью rsvg_handle_render_cairo ()
  • захватите pixbuf с помощью rsvg_handle_get_pixbuf ()
...