1,183
社区成员
发帖
与我相关
我的任务
分享
var
bmp1,bmp2 : tBitmap
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;
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;