BrewSDK 開発(5)

イメージ周りと、その他色々追加しました。

id:melpon:19990101

イメージ周りの処理を追加しました。
BrewImage は、イメージそのものを表すクラスです。
イメージは、ストリームを渡して生成することが出来ます。

BrewImage image;
image.CreateImage(BrewFileInputStream::Open("test.bmp"));

BrewUnzipStream を渡して生成することも可能なので、圧縮されたイメージを一時的なバッファに確保する等の無駄な処理を行わずにロードすることが出来ます。

image.CreateImage(BrewUnzipStream::Create(BrewFileInputStream::Open("test.gz")));


BrewSpriteImage は、イメージの一部を表すためのクラスです。

BrewImage image;
Rectangle rect(10, 10, 100, 100);
BrewSpriteImage spriteImage(image, &rect);

こうすると、spriteImage は image の rect の領域を表すことになります。


BrewRaster は、ラスタの転送方法を指定するためのクラスです。

BrewRaster raster;
// 加算+アルファ50%+180度回転+縦横半分に縮小
raster.Add(true).Alpha(16).Rotate(512).Stretch(Size(32768, 32768));

Add() や Alpha() の返り値が自身なので、連続して書くことが可能です。
これを BrewGraphics に渡して描画を行います。


BrewGraphics は、描画を行うためのクラスです。
矩形やサークルの単純な描画も可能です。

// 画面全体をアルファ50%の黒で塗りつぶし
BrewGraphics::FillRect(dst, null, Color(0 ,0 ,0), 16);
BrewGraphics::DrawImage(dst, Point(0, 0), 0, src, raster);
|<


sample01 にイメージ周りの使い方を説明するためのデモを作りました。
今日の画像のような画面が表示されます。