Apr.23.2000
GdkPixbuf 0.7.0 Release において変わった部分
GdkPixbuf が 0.7.0 になって、0.6.0 時のソースがそのままコンパイル
出来なくなったので、そのあたりについての軽い解説。
GdkPixbuf は GNOME 2.0 の一部として現在どこどこと開発中のライブラリの 一部です。大きな仕様は大分おちついたみたいですが、それでもいくつか 変わっている所がありました。ここでは 0.6.0 と 0.7.0 に注視してその 変更点について解説します。
0.6.0 まで GdkPixbuf は 2つのライブラリを使用していました。libart と
gdkrgb です。gdkrgb は主にレンダリングに使われるのですが、これは
GDK の一部なので、おおよそインストールされていると思います。
ですが、他方の libart は GNOME core の一部で、GNOME 環境をインストール
している場合既に入っているのですが、そうでない場合 GNOME のインストール
をせねばならないというイメージが付きまといなかなか簡単にいれようという
気にならないようです。
開発側においてもその点は大きいらしく、現在は依存している libart, gdkrgb
の二つを GdkPixbuf に含めてしまおうという方針が GdkPixbuf のロードマップ
において示されています。
そういった動きがあって、今回の GdkPixbuf 0.7.0 においては完全に libart
から切り離されました。つまり GNOME がインストールされていない環境に
おいても GdkPixbuf が(難なく)扱えるようになったということです。
今回のこの措置でインターフェースに他のライブラリ形式が依存している
という形は無くなったと思われます。つまり、今後内部的に変更がかかっても
利用プログラム側の変更は無くても済むのではないかという安心感があります。
具体的な修正箇所です。
Pixbuf 生成関数(gdk_pixbuf_new等)において、RGBとかYMCKとかYUVとかの
ピクセルカラーフォーマットを指定する際
Scaling関数(拡大縮小する関数)におけるスムージングするか否かの指定を
いままで
どっちにしても RGB 型しかインプリメントされてはいませんけど。
typedef enum {
ART_PIX_RGB
/* gray, cmyk, lab, ... ? */
} ArtPixFormat;
typedef enum {
GDK_COLORSPACE_RGB
} GdkColorspace;
typedef enum {
ART_FILTER_NEAREST,
ART_FILTER_TILES,
ART_FILTER_BILINEAR,
ART_FILTER_HYPER
} ArtFilterLevel;
typedef enum {
GDK_INTERP_NEAREST,
GDK_INTERP_TILES,
GDK_INTERP_BILINEAR,
GDK_INTERP_HYPER
} GdkInterpType;
rero2@yuumu.rim.or.jp