BCB 用TImage对图片像素放缩

TCanvas对象的CopyRect函数可以实现图象的放大与缩小;即把画布上的一部分拷贝到另一部分。函数原型如下:
void __fastcall CopyRect(const TRect &Dest, TCanvas* Canvas, const TRect &Source);
Example: 
下列的密码举例说明 CopyRect 和 BrushCopy 之间的不同。 位图图标被载入位图而且在 Form1 的帆布上被显示。 BrushCopy 代替在帆布上刷子图标的颜色为黑色, 当 CopyRect 上的颜色尚未脱离的时候。
Graphics::TBitmap *Bitmap;
TRect   MyRect, MyOther;
MyRect = Rect(10,10,100,100);
MyOther = Rect(10,111,100, 201);
Bitmap = new Graphics::TBitmap;
Bitmap->LoadFromFile(//"c:////////windows////////tartan.bmp//");
Form1->Canvas->BrushCopy(MyRect, Bitmap, MyRect, clBlack);
Form1->Canvas->CopyRect(MyOther, Bitmap->Canvas, MyRect);
delete Bitmap;

{
TImage *tImage = new TImage(this);
tImage->Picture->LoadFromFile(sFileName+tPicName);
tImage->Canvas->CopyRect(TRect(0,0,Item_W-3,Item_H*3/4),tImage->Canvas,tImage->Canvas->ClipRect);
tImage->Picture->Bitmap->Width = Item_W-3;
tImage->Picture->Bitmap->Height = Item_H*3/4;
FItem[tTag].Controls[tIdx]->Glyph = tImage->Picture->Bitmap;
delete tImage;
tImage = NULL;

你可能感兴趣的:(BCB 用TImage对图片像素放缩)