背景: 之前承其他同事的项目,他使用Delphi 与 GDI+ ,对JPG 进行叠加文字处理。使用了一个“IGDIPlus.pas”的库
使用:IGpGraphics, IGPImage, IGpBitmap声明变量,但在下面,创建时,使用的是 TGpGraphics,TGPImage等
代码:var
...
...
oBmp: IGPImage;
oG: IGPGraphics;
begin...
...
oBmp := TGPBitmap.Create(nW, nH);
oG := TGPGraphics.Create(oBmp);
oG.DrawImage(oImg, 0, 0, oImg.Width, oImg.Height);
oBmp.Save(sFileName, encoderClsid, @EParam);
oBmp := nil;
...
...end;
之前有听说IGPGraphics是接口类,但不知其所以然,想请阿发伯,大概说说,IGPGraphics与TGPGraphics,I和T在操作上,是否有什么特别注意的地方。还有,之前项目,用到的是“IGDIPlus.pas”库,和阿发伯提供下载的“Gdiplus.pas, GdipTypes.pas, GdipUtil.pas, GdipExport.pas”,有所不同。
也请阿发伯介绍下,两种库的区别特点。
使用:IGpGraphics, IGPImage, IGpBitmap声明变量,但在下面,创建时,使用的是 TGpGraphics,TGPImage等
代码:var
...
...
oBmp: IGPImage;
oG: IGPGraphics;
begin...
...
oBmp := TGPBitmap.Create(nW, nH);
oG := TGPGraphics.Create(oBmp);
oG.DrawImage(oImg, 0, 0, oImg.Width, oImg.Height);
oBmp.Save(sFileName, encoderClsid, @EParam);
oBmp := nil;
...
...end;
之前有听说IGPGraphics是接口类,但不知其所以然,想请阿发伯,大概说说,IGPGraphics与TGPGraphics,I和T在操作上,是否有什么特别注意的地方。还有,之前项目,用到的是“IGDIPlus.pas”库,和阿发伯提供下载的“Gdiplus.pas, GdipTypes.pas, GdipUtil.pas, GdipExport.pas”,有所不同。
也请阿发伯介绍下,两种库的区别特点。
type
TPic = class(Tbmp, Tjpg);但如果有Ibmp和Ijpg接口的就可以实现多继承了(Tbmp是Ibmp的实现,Tjpg是Ijpg的实现)
type
TPic = class(TInterfacedObject, Ibmp, Ijpg);
在类TPic里委托实现Ibmp和Ijpg就使TPic即可处理bmp又可处理jpg了。