ホームページ  >  記事  >  バックエンド開発  >  GOTK3 と librsvg を使用して Go にインライン SVG をロードするにはどうすればよいですか?

GOTK3 と librsvg を使用して Go にインライン SVG をロードするにはどうすればよいですか?

PHPz
PHPz転載
2024-02-08 23:40:08861ブラウズ

如何使用 GOTK3 和 librsvg 在 Go 中加载内联 SVG?

php editor Youzi が GOTK3 と librsvg を使って Go 言語でインライン SVG を読み込む方法を紹介します。 GOTK3 はクロスプラットフォーム GUI アプリケーションを作成するための Go 言語バインディング ライブラリであり、librsvg は SVG 画像をレンダリングするためのライブラリです。これら 2 つのライブラリを併用すると、Go 言語でインライン SVG 画像を簡単に読み込んで表示できます。続いて、具体的な導入手順を見ていきましょう!

質問内容

goで書かれたアプリケーションを開発しています。 gotk3 を使用し、librsvg がインストールされており、gtk.imagenewfromfile(file-path-to-svg) を使用して svg イメージを作成 (および表示) できます。

次に、ソース コードのインライン SVG からプログラムで画像を作成したいと思います...次のようにします。

リーリー

...imagenewfromsvg() の実装について助けが必要です。 gotk3 には imagenewfromsvg() API はありませんが、imagenewfrompixbuf() があります。

文字列 (svg タグ付き) から pixbuf を作成しようとしましたが、できませんでした。

ソースコードで定義されたインラインSVGから画像を作成することは可能ですか?もしそうなら、imagenewfromsvg() の実装は何ですか?

回避策

gdk.pixbufnewfromdataonlyを使用して、SVG文字列をバイトフラグメントとして渡してインラインSVGをロードし、そこからpixbufを取得してPutします。 gtk.imagenewfrompixbuf に入力して *gtk.image を取得し、ウィンドウで使用します。 これは、あなたが言及した imagenewfromsvg 関数の正しい実装の 1 つです:

リーリー

実際の gtk プログラムでの使用例:

リーリー

出力:

以上がGOTK3 と librsvg を使用して Go にインライン SVG をロードするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はstackoverflow.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。