|
여기에 올라와있는 Graphics32를 빌더5에 설치했거든요.
예제중에 Rotate를 C로 바꿔서 빌더에서 컴파일했는데 실행시 Transform에서 에러가 나거든요.
소스는 아래와 같습니다.(예제랑 똑같음)
뭐가 잘 못됐는지 모르겠어요. 아시는 분 도와주시면 감사하겠습니다.
void __fastcall TForm1::FormCreate(TObject *Sender)
{
Dst->Bitmap->SetSize(Src->Bitmap->Width,Src->Bitmap->Height);
SetBorderTransparent(Src->Bitmap, Classes::Rect(0, 0, Src->Bitmap->Width - 1,
Src->Bitmap->Height - 1));
ScaleRot(0);
}
void __fastcall TForm1::ScaleRot(Single Angle)
{
int SrcR;
int SrcB;
TAffineTransformation *T;
Single Sx,Sy,Scale;
SrcR=Src->Bitmap->Width-1;
SrcB=Src->Bitmap->Height-1;
T=new TAffineTransformation;
T->SrcRect=FloatRect(0,0,SrcR+1,SrcB+1);
try{
T->Clear();
T->Translate(-SrcR/2,-SrcB/2);
T->Rotate(0,0,Angle);
Angle=Angle*3.14159265358979 / 180;
Sx=abs(SrcR*cos(Angle))+abs(SrcB*sin(Angle));
Sy=abs(SrcR*sin(Angle))+abs(SrcB*cos(Angle));
Sx=Src->Bitmap->Width/Sx;
Sy=Src->Bitmap->Height/Sy;
Scale=min(Sx,Sy);
T->Scale(Scale,Scale);
T->Translate(SrcR/2,SrcB/2);
Dst->BeginUpdate();
Dst->Bitmap->Clear(clWhite32);
//???여기서 에러가 난다.
Transform(Dst->Bitmap, Src->Bitmap,T);
Dst->EndUpdate();
Dst->Repaint();
}
catch(...){
ShowMessage("오류입니다.");
}
delete T;
}
|