如何用 GDI+ 把 image 控件里的 bmp图像,保存为透明的 gif 或 png 文件?(100)

  • 主题发起人 主题发起人 zwfyazl
  • 开始时间 开始时间
Z

zwfyazl

Unregistered / Unconfirmed
GUEST, unregistred user!
如何用 GDI+ 把 image 控件里的 bmp图像,保存为透明的 gif 或 png 文件?我可以保存为 png或者gif文件,但是如何保存为透明的文件? 不用gdi+有没有其他方法,可以把image 控件里的 bmp图像,保存为透明的 gif 或 png 文件?请各位专家帮忙!
 
你可以用把每个象素的透明色找出来然后保存到一个TGPBITMAP中然后再保存为PNG图片就可以了
 
可以具体一点吗?
 
for X := 0 to tmpBit.Width - 1 do begin for Y := 0 to tmpBit.Height - 1 do begin R := GetRValue(tmpBit.Canvas.Pixels[X, Y]); G := GetGValue(tmpBit.Canvas.Pixels[X, Y]); B := GetBValue(tmpBit.Canvas.Pixels[X, Y]); if RGB(RGB)=clwhite then A := 255 else A := 0; SourceBmp.SetPixel(X, Y, MakeColor(A, R, G, B)); end; end; Bitmap.Free;
 
请fang_csc,给详细一些的定义可以吗?SetPixel 这个 uses 那个 .pas文件 ?还有各变量的定义谢谢了。。我需要更完整的代码
 
SourceBmp就是一个TGPBITMAP就是GDI+的一个类啊你不是要GDI+的吗uses GDIPOBJ, GDIPAPI, GDIPUTIL 就可以了
 
然后用下面的函数保存就可以了procedure SaveGpBitMapToFile(SourceBmp: TGPBitmap; SaveFilename: string);var encoderClsid: TGUID; stat: TStatus;begin GetEncoderClsid('image/png', encoderClsid); stat := SourceBmp.Save(SaveFilename, encoderClsid, nil);end;
 

Similar threads

D
回复
0
查看
744
DelphiTeacher的专栏
D
D
回复
0
查看
824
DelphiTeacher的专栏
D
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
718
DelphiTeacher的专栏
D
后退
顶部