procedure TFormBrowse.Button1Click(Sender: TObject);
var
encoderClsid: TGUID;
stat: TStatus;
Image: TGPImage;
begin
Image := TGPImage.Create('GrapeBunch.bmp'); // Get the CLSID of the PNG encoder.
GetEncoderClsid('image/bmp', encoderClsid);
stat := image.Save('GrapeBunch.bmp', encoderClsid, nil); if(stat = Ok) then
memo1.Lines.Add('GrapeBunch.bmp was saved successfully')
else
memo1.Lines.Add(format('Failure: stat = %s', [GetStatus(stat)])); image.Free;
end;
结果:Failure: stat = Win32Error 哪位大侠能否告诉怎么回事啊?为什么不能覆盖原文件?
var
encoderClsid: TGUID;
stat: TStatus;
Image: TGPImage;
begin
Image := TGPImage.Create('GrapeBunch.bmp'); // Get the CLSID of the PNG encoder.
GetEncoderClsid('image/bmp', encoderClsid);
stat := image.Save('GrapeBunch.bmp', encoderClsid, nil); if(stat = Ok) then
memo1.Lines.Add('GrapeBunch.bmp was saved successfully')
else
memo1.Lines.Add(format('Failure: stat = %s', [GetStatus(stat)])); image.Free;
end;
结果:Failure: stat = Win32Error 哪位大侠能否告诉怎么回事啊?为什么不能覆盖原文件?
procedure TFormBrowse.Button1Click(Sender: TObject);
var
encoderClsid: TGUID;
stat: TStatus;
Image: TGPBitmap;
BmpSave : TGPBitmap;
Gd : TGpGraphcis;
begin
Image := TGPImage.Create('GrapeBunch.bmp');
BmpSave := TGpBitmap.Create(Image.GetWidth,Image.GetHeight,Image.GetPixelFormat);
Gd := TGpGraphics.Create(BmpSave);
Gd.DrawImage(Image,0,0);
freeandnil(Gd);
Freeandnil(Image); // Get the CLSID of the PNG encoder.
GetEncoderClsid('image/bmp', encoderClsid);
stat := BmpSave.Save('GrapeBunch.bmp', encoderClsid, nil);
Freeandnil(BmpSave);
if(stat = Ok) then
memo1.Lines.Add('GrapeBunch.bmp was saved successfully')
else
memo1.Lines.Add(format('Failure: stat = %s', [GetStatus(stat)]));
end;
以上方法对bmp等格式当然是适用的,但是对于多页的tif文件,却不适用。
如果我现在需要覆盖原tif图片,应该怎么做?
请教dinoalex,具体该怎么做?
procedure TForm1.Button1Click(Sender: TObject);
var
encoderClsid: TGUID;
stat: TStatus;
Image1,Image2: TGPImage;
s: IStream;
ms: tmemorystream;
begin
Image1 := TGPImage.Create('B.bmp');
GetEncoderClsid('image/png', encoderClsid);
image1.Free;
ms:= TMemoryStream.Create;
ms.LoadFromFile('B.bmp');
s := TStreamAdapter.Create(ms);
image2:= TGPImage.Create(s);
stat := image2.Save('B.bmp', encoderClsid, nil);
ms.Free;
image2.Free;
s:= nil;
if(stat = Ok) then
memo1.Lines.Add('GrapeBunch.bmp was saved successfully')
else
memo1.Lines.Add(format('Failure: stat = %s', [GetStatus(stat)]));
end;
procedure TForm1.Button1Click(Sender: TObject);
var
encoderClsid: TGUID;
stat: TStatus;
Image: TGPImage;
s: IStream;
ms: tmemorystream;
begin
GetEncoderClsid('image/png', encoderClsid);
ms:= TMemoryStream.Create;
ms.LoadFromFile('GrapeBunch.bmp');
s := TStreamAdapter.Create(ms);
image:= TGPImage.Create(s);
stat := image.Save('GrapeBunch.bmp', encoderClsid, nil);
ms.Free;
image.Free;
s:= nil;
if(stat = Ok) then
memo1.Lines.Add('GrapeBunch.bmp was saved successfully')
else
memo1.Lines.Add(format('Failure: stat = %s', [GetStatus(stat)]));
end;