2009年04月16日

pango使ってみた。

ちょっと目先を変えてpangoを使ってみた。
GTKの基幹ライブラリーだがGTK依存ではなくてglib2だけに依存している。
同時に入るライブラリーでpangocairoというのがあるのでcairoをターゲットにpangoを使ってみた。
cairoはSDL_Surfaceをターゲットに出来る。
今回はめんどいのでイメージに直接出力したがSDLへのテキストレンダリングに使えるということだ。
それでどうした!......
ラベル:pango cairo
posted by Xo_ox at 17:13| Comment(0) | クロスプラットフォーム | このブログの読者になる | 更新情報をチェックする

2009年04月15日

cairoをjpegで書き出す

cairo_surface_write_to_pngに対応した
cairo_surface_write_to_jpgを作ってみ。
imagesurfaceにしか対応していないし荒っぽいが
アルファチャンネルを白方向に合成するようにしたので悪くない感じになった。
あと今回は表記が三項演算子だったり動的配列を使ったり微妙に実験的でもある。
それでどうした!......
ラベル:cairo 画像処理
posted by Xo_ox at 23:27| Comment(0) | クロスプラットフォーム | このブログの読者になる | 更新情報をチェックする

2009年04月14日

cairoにjpegを読み込む

cairoはpngの読み書きができるのだがやはりjpegを読めた方が良い。
SDLやメモリに読み込むよりとりあえずテクスチャーをcairoで考慮して問題はないだろうと考えたので
libjpegによる読み込みを使いやすくしてみた。
それでどうした!......
ラベル:cairo libjpeg
posted by Xo_ox at 23:48| Comment(0) | クロスプラットフォーム | このブログの読者になる | 更新情報をチェックする

2009年04月11日

cairo用の構造体とマスクとクリップ

今回はcairoの描画部分をコンテキスト非依存にして
アプリの中核となる部分や型をまとめてみた。
描画部分については重なり合いを扱うcairo_set_operator
描画部分で切り取るcairo_clip、そしてcairo_set_source等
ありがちなサンプルでやってみた。
メモリを確保する関数とかマクロもいくつか作ったが今回はcairo_image_surface_createに頼った。
それでどうした!......
ラベル:cairo
posted by Xo_ox at 23:40| Comment(0) | クロスプラットフォーム | このブログの読者になる | 更新情報をチェックする

2009年04月08日

rsvg2とcairoでsvgをSDLに描画したり保存したり

cairoで一般的なビットマップを扱う場合は代替手段も多いだろうが
同一描画命令でps2,pdf,svgもサポートしている点が大きい。
今回はrsvg2も使い、svgファイルをimageとsvgそれぞれに取り込み
文字を描画してimageをsvgに描画し、それをsvgとpngに出力をしつつ画面をだすということをやってみた。
それでどうした!......
ラベル:cairo SVG SDL
posted by Xo_ox at 15:51| Comment(0) | クロスプラットフォーム | このブログの読者になる | 更新情報をチェックする

2009年04月07日

cairoでの画像のやりとりと透明度

メモリコンテキストにcairo_surface_tを割り当てることにより
cairo以外の手段で透明度も含めて操作した内容が反映されたpngを保存できるようになった。
注意点はBGRAになる点とデータがアルファをもつ点で
libjpegを使って読み込んだ画像も表示・png保存できた。
それでどうした!......
ラベル:cairo
posted by Xo_ox at 22:42| Comment(0) | クロスプラットフォーム | このブログの読者になる | 更新情報をチェックする

2009年04月06日

cairo_surfaceの通常時とpng使用時の開放の不思議

どうもcairoのサンプルはあまり無いようだし興味のある人も少ないようだが
それなりのパフォーマンスと結果が期待できるので本格的に使っていこうと思う。
昨日、とりあえずjpegをcairoで扱うことが出来たのだが
pngを読む場合と割り当てる場合で同様の開放方法であり正しかったのかどうか
メモリーの確保と開放がどうにも不明瞭だったので再確認し元データの反映のタイミングを確認した。
それでどうした!......
ラベル:cairo
posted by Xo_ox at 23:59| Comment(0) | クロスプラットフォーム | このブログの読者になる | 更新情報をチェックする

2009年04月04日

cairoへのjpegload、思わぬ落とし穴。

WindowフレームワークとしてのxlibかSDL
描画フレームワークとしてのcairoそしてSDLとOpenGL
簡便な画像ライブラリーとしてのlibjpeg
だんだんツールもみえてきたところでcairoでjpeg画像の加工をしてみようと思った。
しかし今回思わぬ落とし穴があった。cairoはビッグエンディアンだったのだ。
ブロック転送はできない。
それでどうした!......
ラベル:cairo
posted by Xo_ox at 23:20| Comment(0) | クロスプラットフォーム | このブログの読者になる | 更新情報をチェックする

2009年04月03日

jpegtranで遊ぶ

libjpegをインストールする。つまりFreeBSDのデスクトップのデフォルトでは
libjpegのコマンドラインツールがインストールされる。
djpeg、cjpeg、jpegtran、exifautotran、jpegexiforient、
wrjpgcom、rdjpgcomの7つ
jpegコメントは興味ないので今回はロスレス変換系の3つのコマンドを試した。
前回のexifタグのstripなどはわざわざコードを組まなくてもjpegtranだけで十分なわけだ。
それでどうした!......
ラベル:libjpeg
posted by Xo_ox at 23:51| Comment(0) | FreeBSDアプリ | このブログの読者になる | 更新情報をチェックする

2009年04月02日

exifタグのstrip

前回はココログにアップすることを前提にexifをキープして再編集したが
逆に単にexifを取りたいこともある。ファイルのパースをすればいいだけなのだが
libjpegを使ってできるのでやってみた。
参考になるのはやはりjpegtran.cだ。

jpegtran.cをみるとロスレス変形はライブラリーでなくてtransupp.cというローカルモジュールに依存している様だ。
特にGPLとかでもないようなのでIJGベースだとライセンスをつければ公開などは無難で
transupp.cの部分コピーを使えなくもないがロスレス回転とか微妙に半端で長いコードなので
jpeglibだけで後日自前で組むとして今回はexifタグのstripだけやってみた。
それでどうした!......
ラベル:libjpeg 画像
posted by Xo_ox at 19:59| Comment(0) | クロスプラットフォーム | このブログの読者になる | 更新情報をチェックする
×

この広告は1年以上新しい記事の投稿がないブログに表示されております。