Cairommによるpng画像ファイルからの画素抽出について

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
chibago

Cairommによるpng画像ファイルからの画素抽出について

#1

投稿記事 by chibago » 12年前

皆様、お久しぶりです。
chibagoです。

png画像ファイルから画素(RGBA)データをpixcel毎に抽出し演算処理
をすることを考えております。

ツールとしては、画像描画に慣れているCairommにしたいと思っております。
ファイルに書き出すのは慣れているのですが、ファイルから読み込んだことがなく、
調べてもよく理解できませんでしたので、もしお使いの方がいらっしゃりましたら
ご指導いただければ幸いです。

サーフェースとコンテキストは以下のように簡単に取得できます。

コード:

      Cairo::RefPtr< Cairo::ImageSurface > surface
	   = Cairo::ImageSurface::create_from_png(file_path);

     Cairo::RefPtr< Cairo::Context > context;
         context = Cairo::Context::create(surface);
さらに必要になると思われる、画素数ですが、サーフェースの関数の
get_width,get_heightで取得できます。肝心の画素データですが、
サーフェースのget_dataはサーフェースのポインタを示してるだけの
ようですし、コンテキストのほうにget_matrixというものがありますが、
これが該当しているのか分かりませんし、また、取得に際してもmatrix
の仕様を熟知しなければならないと思います。

また、コンテキストのほうにget_source()というものがありますが、
これでよいのかどうかも不明です。
double rgba[] get_source(x,y)のような使いやすい形のものがあれば
よいのですが、よくわかりません。

どのようにして画素を取得するものなのでしょうか。

アバター
みけCAT
記事: 6734
登録日時: 15年前
住所: 千葉県
連絡を取る:

Re: Cairommによるpng画像ファイルからの画素抽出について

#2

投稿記事 by みけCAT » 12年前

「Cairomm 画素 取得」でググったらこのページが見つかりました。
http://www.comp.sd.keio.ac.jp/Members/y ... 6e63cf753b
予想ですが、A(透明度)の要素は、このページのコードで言うと*(p+y*stride+x*step+3)でしょうか?
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

chibago

Re: Cairommによるpng画像ファイルからの画素抽出について

#3

投稿記事 by chibago » 12年前

みけCAT さん
ありがとうございました。
さっそくやってみます。

閉鎖

“C言語何でも質問掲示板” へ戻る