如题..
解决方案 »
- 如何用程序获取Outlook Express邮件中的附件?
- 新人求教,大家帮帮帮(1)
- ADOConnect怎样通过IP访问数据库服务器??
- 一个简单的问题,D7中,打印机的打印尺寸怎样和屏幕尺寸(像素)换算?
- DBLookupComboBox问题
- 请问高手:如何在服务器上查找已知文件名的文件是否存在?delphi里如何实现
- 如何在程序中设置标签的Caption?
- ListBox中显示了数据库中某一字段的内容,删除ListBox中的项目的同时怎样删除数据库中的同一记录
- 各位大拿,请求这样的程序源码?
- combox的addobject问题,sos!!!
- 高手请进,救命啊
- 关于API HOOK的问题
var DC : HDC;
Bmp : TBitmap;
rc : TRect;
png : TPngObject;
begin
DC := GetDC(form1.Handle);
GetClipBox(DC,rc);
Bmp := Tbitmap.Create;
Bmp.Width := rc.right - rc.left;
Bmp.Height := rc.Bottom - rc.Top;
Bitblt(Bmp.Canvas.Handle,0,0,Bmp.Width,Bmp.Height,DC,0,0,SRCCOPY);
ReleaseDC(form1.Handle,DC);
Png := TPngObject.Create;
Png.Assign(Bmp);
Png.SaveToFile('a.png');
Bmp.Free;
Png.Free;
end;
png.CreateAlpha;
for i := 0 to png.Header.Height - 1 do
begin
pData := Bitmap.ScanLine[i];
for j := 0 to png.Header.Width - 1 do
png.AlphaScanline[i]^[j] := pData[j * 4 + 3];
end;GDI+保存PNG格式代码: procedure SaveTofile(Bitmap : TBitmap;aExt : string);
var Gpbmp : TGpBitmap;
CLSID : TGUID;
Parameters: TEncoderParameters;
Quality: Integer;
begin
if GetEncoderClsid('Image/' + aExt,CLSID) then
begin
Gpbmp := TGpBitmap.Create(Bitmap.Handle,Bitmap.Palette);
Parameters.Count := 1;
Parameters.Parameter[0].NumberOfValues := 1;
Quality := 100;
Parameters.Parameter[0].Value := @Quality;
Gpbmp.Save(aFile,CLSID,@Parameters);
FreeandNil(Gpbmp);
end;
end;