var
bmp1,bmp2 : tBitmap
從復制(截取)bmp1中的某個區域到bmp2中,
請問,要怎么做呢
uj5u.com熱心網友回復:
bmp2.Canvas.CopyRect(Rect(100,100,200,200), bmp1.Canvas, Rect(0,0,100,100));從bmp1 0,0,100,100區域拷貝到bmp2 100,100,200,200區域
uj5u.com熱心網友回復:
procedure CropBitmap(InBitmap, OutBitMap : TBitmap; X, Y, W, H :Integer);
begin
OutBitMap.PixelFormat := InBitmap.PixelFormat;
OutBitMap.Width := W;
OutBitMap.Height := H;
BitBlt(OutBitMap.Canvas.Handle, 0, 0, W, H, InBitmap.Canvas.Handle, X, Y, SRCCOPY);
end;
//使用方式
Var
Bmp : TBitmap;
begin
Bmp:=TBitmap.Create;
try
CropBitmap(Image1.Picture.Bitmap, Bmp, 10,0, 150, 150);
....
finally
Bmp.Free;
end;
end;
uj5u.com熱心網友回復:
StretchBlt還可以進行縮放樓上用JavaScript code也能把代碼對的那么整齊
uj5u.com熱心網友回復:
可以用windows提供的BitBlt函式實作uj5u.com熱心網友回復:
很熱鬧啊
uj5u.com熱心網友回復:
bmp2.Assign(bmp1);把bmp1的值給bmp2
uj5u.com熱心網友回復:
簡單易行,
uj5u.com熱心網友回復:
這是我的代碼:1、將圖讀入Image1;
2、Image2,無圖,與Image1重疊;滑鼠Image2模擬獲取截圖的左上點,右下點位置資料:XX1,YY1,XX2,YY2;
3、新圖解析度ComboBox1.ItemIndex
4、新的圖,以ImagePath+TempName+'.bmp'檔案名另存;
5、ChangeImageSize;顯示截圖
代碼如下:
procedure TSeleteImageFrm.Button2Click(Sender: TObject);
var MyRect, NewRect: TRect;
Bmp,NewBmp: TBitmap;
s1,s2:string;
W,H,WW,WH:integer;
k,k1:double;
begin
TempName:=Edit1.text; // 檔案名
if (XX2=0) or (YY2=0) then
begin
XX1:=0;
YY1:=0;
XX2:=Image1.Picture.Graphic.Width;
YY2:=Image1.Picture.Graphic.Height;
end;
Bmp:=TBitmap.Create;
NewBmp:=TBitmap.Create;
MyRect := Rect(XX1,YY1,XX2,YY2);
NewRect := Rect(0,0,XX2-XX1, YY2-YY1);
Bmp.Width:=XX2-XX1;
Bmp.Height:=YY2-YY1;
Bmp.Canvas.CopyRect(NewRect,Image2.Canvas, MyRect);
case ComboBox1.ItemIndex of
0: ChangeAnyPixels(Bmp,NewBmp,100,133);
1: ChangeAnyPixels(Bmp,NewBmp,150,200);
2: ChangeAnyPixels(Bmp,NewBmp,200,266);
3: ChangeAnyPixels(Bmp,NewBmp,225,300);
4: ChangeAnyPixels(Bmp,NewBmp,300,400);
end;
NewBMP.SaveToFile(ImagePath+TempName+'.bmp');
Image1.Picture.Assign(BMP);
Image2.Picture.Assign(BMP);
ChangeImageSize;
XX2:=0;
YY2:=0;
Bmp.Free;
NewBmp.Free;
end;
uj5u.com熱心網友回復:
上述代碼僅供參考。uj5u.com熱心網友回復:
1、原圖,使用滑鼠選擇區域
2、截圖后生成的新圖

uj5u.com熱心網友回復:
樓上熱心人多 了 呵呵 我就不說了 方法也有很多種的uj5u.com熱心網友回復:
bmp.Canvas.CopyRectuj5u.com熱心網友回復:
Canvas.CopyRectAPI Bitbl等都可以
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/84774.html
