我使用此代码绘制图像并使用 Delphi 2006 将其保存为 TIFF:
var Bmp: TBitmap;
MF: TMetaFile;
MetafileCanvas: TMetafileCanvas;
begin
Gdip := TGDIPlusFull.Create('gdiplus.dll');
MF := TMetaFile.Create;
MF.Width := 1000;
MF.Height := 1100;
MetafileCanvas := TMetafileCanvas.Create(MF, 0);
MetafileCanvas.Brush.Color := clRed;
MetafileCanvas.Brush.Style := bsDiagCross;
MetafileCanvas.Ellipse(50, 50, 300 - 50, 200 - 50);
MetafileCanvas.Free;
Bmp := Gdip.DrawAntiAliased(MF);
Image1.Picture.Assign(Bmp);
SynGDIPlus.SaveAs(Bmp, 'c:\test.tif', gptTIF);
Bmp.Free;
MF.Free;
FreeAndNil(GdiP);
end;
注意我使用来自 http://www.synopse.info 的免费框架。
该代码运行良好。但是我有一个问题。如何设置 TIFF 分辨率。我的 test.tif 图像有 96 DPI(屏幕分辨率),但我需要 200 DPI。注意我不能改变图像尺寸(宽度和高度),因为正确,我只想改变 DPI 分辨率。
我找到了很多关于这个问题的答案,但没有找到关于 Delphi 的答案。