2012年

5月

25日

03)画像処理の方法(その1)

画像処理を調べてみました。as3の画像エフェクトAPIと比べてどうなのか、という点が最終目標ですが、まず、基本的なところからおさえていきます。

 

CanvasプロパティがBitmapDataのようです。各ピクセルの色は、Pixels[X][Y]で取ることができます。次の例はモザイクを作る方法のテストです。FillRectメソッドもあります。

 

TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
 : TForm(Owner)
{
 Image1->AutoSize=true;
 Image1->Picture->LoadFromFile("..\\..\\柿.bmp");
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Image1MouseDown(TObject *Sender, TMouseButton Button, TShiftState Shift,
          int X, int Y)
{
 Image1->Canvas->Brush->Color = Image1->Canvas->Pixels[X][Y];
 Image1->Canvas->FillRect(Rect(X, Y, X+30, Y+50));
}

 

次の例は、drawメソッドの確認です。CopyModeプロパティが、as3のBlendModeにあたります。Graphics::TBitmapクラスが、as3のBitmapクラスです。Ms.bmpはdrawするための小さな画像です。

 

TForm1 *Form1;
Graphics::TBitmap *b;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
 : TForm(Owner)
{
 Image1->AutoSize = true;
 Image1->Picture->LoadFromFile("..\\..\\柿.bmp");
 b=new Graphics::TBitmap;
 b->LoadFromFile("..\\..\\Ms.bmp");
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Image1MouseDown(TObject *Sender, TMouseButton Button, TShiftState Shift,
          int X, int Y)
{
 Image1->Canvas->CopyMode = cmSrcCopy;

 Image1->Canvas->Draw(X, Y, b);
}