パスワードを忘れた? アカウント作成
451163 journal

fgdの日記: GdkPixmapに文字を書いてそれを保存

日記 by fgd

サブジェクトのようなことをしたかったので調べた。
面倒だった。

最初に unsigned char hoe[640 * 480 * 3]という配列に、RGBRGBRGB....という並び方でピクセルを放り込む。 それをgdk_imlib_create_image_from_data()でGdkImlibImageな形で作成。それをgdk_imlib_render()で描画し(サイズ変更に対応。不要な気がする)、gdk_imlib_move_image()でGdkPixmapな形に流し込んでいた。

ここまでは、前に作っていたものがあったので、それを流用しつつ目的のブツを表示するまで3時間ほど。上出来。
ココからが長かったのだが。

文字の表示のためには、gdk_draw_string()を使用。配列に直に書くのは面倒、imlibにはそんな関数は無いっぽいため、GdkPixmapに描く必要があるようだ。 ちなみに、フォントの読み込みが必要なので、gdk_fontset_load()する。

ココからがさらに面倒で、描き終わった画面をもう一度手元に引き戻す必要がある。
GdkImage* a_gdkimage = gdk_image_get(pixmap, x, y, width, height)したあとに、guint32 pix = gdk_image_get_pixel(a_gdk_image,x,y)で、1ピクセルずつ読み込んでいく。この unsigned int型の内部では、aarrggbb(aはαブレンディング用…というのかな。)という順番に並んでいるので、r = (pix & 0x00ff00) / 65536;などとやって分割して、手元の配列に入れていく。

あー、面倒でした。

こんなことなら、最初からPixmapに書き込めばよかった。

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
typodupeerror

Stableって古いって意味だっけ? -- Debian初級

読み込み中...