2010年6月4日 星期五

TImage_BmpResize

/** 將 Image1 的 bmp data 透過 StretchDraw 畫至 Image2 bmp buffer **/
/** Image2 的 Stretch 屬性設為 true, 可將 Image2 bmp data 的寬/高等比例顯示出來 **/
/** Image1 放在 FrmMain, Align=alNone, Stretch=true **/
/** Bn_Resize, Ed_ResizeWidth 及 Ed_ResizeHeight 放在 FrmMain **/
/** Image2 放在 FrmResize, Align=alClient, Stretch=true **/

void __fastcall TFrmMain::Bn_ResizeClick(TObject *Sender) // TButton
{
  TRect resRect;

  if( (Ed_ResizeWidth->Text.ToInt()<=0) || (Ed_ResizeHeight->Text.ToInt()<=0) ){

return;
}

resRect.top=0;
  resRect.bottom=Ed_ResizeHeight->Text.ToInt();
  resRect.left=0;
resRect.right=Ed_ResizeWidth->Text.ToInt();

  FrmResize->Image2->Picture->Bitmap->Width=Ed_ResizeWidth->Text.ToInt();
FrmResize->Image2->Picture->Bitmap->Height=Ed_ResizeHeight->Text.ToInt();
FrmResize->ClientWidth=Ed_ResizeWidth->Text.ToInt();
FrmResize->ClientHeight=Ed_ResizeHeight->Text.ToInt();

FrmResize->Image2->Picture->Bitmap->Canvas->StretchDraw(resRect, FrmMain->Image1->Picture->Bitmap);
  FrmResize->Show();
}