var
ImgD: TGPImage;
EClsid: TGUID;
begin
ImgD:=TGPImage.Create;
grp:=TGPGraphics.Create(ImgD);
brush:=TGPSolidBrush.Create(clWhite);
grp.FillRectangle(brush,0,0,100,100);
GetEncoderClsid('image/jpeg',EClsid);
ShowMessage(GetStatus(ImgD.save('C:\1.jpg',EClsid)));结果Save失败:
---------------------------
Project1
---------------------------
InvalidParameter
---------------------------
OK
---------------------------
ImgD: TGPImage;
EClsid: TGUID;
begin
ImgD:=TGPImage.Create;
grp:=TGPGraphics.Create(ImgD);
brush:=TGPSolidBrush.Create(clWhite);
grp.FillRectangle(brush,0,0,100,100);
GetEncoderClsid('image/jpeg',EClsid);
ShowMessage(GetStatus(ImgD.save('C:\1.jpg',EClsid)));结果Save失败:
---------------------------
Project1
---------------------------
InvalidParameter
---------------------------
OK
---------------------------
var
ImgD: TGPImage;
EClsid: TGUID;
Grp : TGPGraphics;
brush: TGPSolidBrush;
begin
ImgD:=TGPImage.Create('User.Bmp');
grp:=TGPGraphics.Create(ImgD);
brush:=TGPSolidBrush.Create(clWhite);
grp.FillRectangle(brush,0,0,100,100);
GetEncoderClsid('image/jpeg',EClsid);
ShowMessage(GetStatus(ImgD.save('C:\1.jpg',EClsid,nil)));
end;
这个User.bmp必须是存在的么?
var
ImgD: TGPImage;
EClsid: TGUID;
Grp : TGPGraphics;
brush: TGPSolidBrush;
begin
ImgD:=TGPImage.Create('C:\1.Bmp');
grp:=TGPGraphics.Create(ImgD);
brush:=TGPSolidBrush.Create(clRed);
grp.FillRectangle(brush,0,0,100,100);
GetEncoderClsid('image/jpeg',EClsid);
ShowMessage(GetStatus(ImgD.save('C:\1.jpg',EClsid,nil)));
结果:
---------------------------
Project1
---------------------------
InvalidParameter
---------------------------
OK
---------------------------
在C:\1.jpg下确定产生了这个文件,但用IE浏览不了这个JPEG文件。
《精通GDI+编程》周鸣扬 赵景亮 编著 清华大学出版社¥42.00
ImgD: TGPImage;
EClsid: TGUID;
Grp : TGPGraphics;
brush: TGPSolidBrush;
begin
ImgD:=TGPImage.Create('C:\1.Bmp');
grp:=TGPGraphics.Create(ImgD);
brush:=TGPSolidBrush.Create(clRed);
grp.FillRectangle(brush,0,0,200,200);
GetEncoderClsid('image/bmp',EClsid);
ShowMessage(GetStatus(ImgD.save('C:\2.bmp',EClsid)));现在能生成2.bmp了,但这个2.bmp与1.bmp完全一样,并没有画上红色的Rectangle?
ImgD:=TGPImage.Create('C:\1.Bmp');
// ImgD:=TGPImage.Create;
grp:=TGPGraphics.Create(ImgD);
brush:=TGPSolidBrush.Create(makeColor(255,0,0));
grp.FillRectangle(brush,0,0,200,200);
pen:=TGPPen.Create(makeColor(0,0,0),5);
创建pen 和brush对象时要用指定 Alpha 部分的色彩表示。Alpha 表示所呈现图形后面的对象的透明度但现在的问题是,创建一个新的JPEG图似乎还不行,还是:
---------------------------
Project1
---------------------------
InvalidParameter
---------------------------
OK
---------------------------