3

librsvg を介してピクセル バッファを取得する前に、svg をスケーリングすることは可能ですか? rsvg_pixbuf_from_file_at_zoom のような API を確認できますが、非推奨としてマークされています。

それを行う他の方法はありますか?可能であれば、これにカイロを使用することは避けたいです。

4

1 に答える 1

4

多くの選択肢はありません。次のいずれかです。

  • rsvg_pixbuf_from_file_at_size() のような非推奨の関数を使用する (これはそれほど悪くはありません。この関数がすぐになくなる可能性はあまりありません)
  • または、適切な次元で作成された cairo サーフェスで rsvg_handle_new_from_file() および rsvg_handle_render_cairo() で RsvgHandle オブジェクトを使用する

最後に GdkPixbuf が必要な場合は、cairo の使用を最小限に制限できます。

  • rsvg_handle_new_from_file() で RsvgHandle を作成する
  • カイロコンテキストを作成し、必要な変換マトリックスを設定する
  • rsvg_handle_render_cairo() で svg をレンダリングします
  • rsvg_handle_get_pixbuf() で pixbuf を取得します。
于 2011-09-25T05:16:30.430 に答える