请问如何把TPaintBox上的图片保存为BMP或者JPG文件? 如题~~~~~~~~ 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 function GetClipBitmapFromDC(DC: HDC; x, y, Width, Height: Integer): HBITMAP;var memDC: HDC; oldBmp: HBITMAP;begin Result := CreateCompatibleBitmap(DC, Width, Height); memDC := CreateCompatibleDC(DC); oldBmp := SelectObject(memDC, Result); try BitBlt(memDC, 0, 0, Width, Height, DC, x, y, SRCCOPY); finally SelectObject(memDC, oldBmp); DeleteDC(memDC); end;end;// TPaintBox.Canvas.Handle只有在Paint事件中才是有效的,所以可设置某个外部条件,满足时保存图像procedure TForm1.PaintBox1Paint(Sender: TObject);var bmp: TBitmap;begin .... // 画图代码略 if 条件 then begin bmp := TBitmap.Create; // x,y,Width,Height是给定矩形尺寸 bmp.Handle := GetClipBitmapFromDC(PaintBox1.Canvas.Handle, 0, 0, PaintBox1.Width, PaintBox1.Height); bmp.SaveToFile('1.bmp'); bmp.Free; end;end; procedure TForm1.Button1Click(Sender: TObject);var bmp: TBitmap;begin bmp := TBitmap.Create; bmp.Width := PaintBox1.Width; bmp.Height := PaintBox1.Height; bmp.PixelFormat := pf24Bit; bmp.Canvas.CopyRect(Rect(0, 0, bmp.Width, bmp.Height), PaintBox1.Canvas, Rect(0, 0, bmp.Width, bmp.Height)); bmp.SaveToFile('c:\temp.bmp'); bmp.Free;end; 一个type赋值的问题 系统中如何有效防止DeDe的反编译? 请教一个问题,运行后如何监视win2000中的程序运行? 如何才能控制打印不走纸,实现即打即停,??? 无边框窗体,如何通过改善SC_SIZE消息改变窗体大小。 在internet 常 上连接服务器上SQL SERVER 数据库不成功????,这是??? 关于dbimage 招聘Delphi程序员 谁能提供《中小企业客户管理系统》的资料!---帮朋友做的毕业设计!(高分求助500) Borland Socket Server进程停止响应,有哪位大侠曾经碰到过这种情况? 限制图片尺寸的时候遇到的问题 一个内存读取语句的写法
Height: Integer): HBITMAP;
var
memDC: HDC;
oldBmp: HBITMAP;
begin
Result := CreateCompatibleBitmap(DC, Width, Height);
memDC := CreateCompatibleDC(DC);
oldBmp := SelectObject(memDC, Result);
try
BitBlt(memDC, 0, 0, Width, Height, DC, x, y, SRCCOPY);
finally
SelectObject(memDC, oldBmp);
DeleteDC(memDC);
end;
end;// TPaintBox.Canvas.Handle只有在Paint事件中才是有效的,所以可设置某个外部条件,满足时保存图像
procedure TForm1.PaintBox1Paint(Sender: TObject);
var
bmp: TBitmap;
begin
.... // 画图代码略
if 条件 then
begin
bmp := TBitmap.Create;
// x,y,Width,Height是给定矩形尺寸
bmp.Handle := GetClipBitmapFromDC(PaintBox1.Canvas.Handle,
0, 0, PaintBox1.Width, PaintBox1.Height);
bmp.SaveToFile('1.bmp');
bmp.Free;
end;
end;
var
bmp: TBitmap;
begin
bmp := TBitmap.Create;
bmp.Width := PaintBox1.Width;
bmp.Height := PaintBox1.Height;
bmp.PixelFormat := pf24Bit;
bmp.Canvas.CopyRect(Rect(0, 0, bmp.Width, bmp.Height), PaintBox1.Canvas, Rect(0, 0, bmp.Width, bmp.Height));
bmp.SaveToFile('c:\temp.bmp');
bmp.Free;
end;