gpt4 book ai didi

delphi - 使用 Delphi 处理大图像并保存为 .jpeg

转载 作者:行者123 更新时间:2023-12-03 15:51:12 28 4
gpt4 key购买 nike

在Delphi 7中,我有一个使用TCanvas组件输出一些信息的库。生成的图像约为 4800*6000 像素,我想打印它并将其另存为 .jpeg

为了实现这一点,我创建了一个 TBitmap 并将其 Canvas 作为库的参数,然后将位图分配给 jpeg。显然,这占用了太多内存,因为我在尝试设置位图的宽度和高度时遇到异常,提示“没有足够的存储空间来处理此命令。”

// output to printer
Printer.BeginDoc();
doPrint(Printer.Canvas);
Printer.EndDoc();

// output in bmp.Canvas
bmp := TBitmap.Create;
bmp.Width := Printer.PageWidth;
bmp.Height := Printer.PageHeight; // <- BAM! Exception!
doPrint(bmp.Canvas);

// save as jpeg
jpg := TJPEGImage.Create;
jpg.Assign(bmp);
jpg.SaveToFile('...');

// free
bmp.Free();
jpg.Free();

我做错了什么?我可以直接将 Printer.Canvas 保存为 .jpeg 文件吗?

编辑:将图像尺寸近似值从 2000*2000 更新为 4800*6000

最佳答案

您应该能够使用 Graphic32 中的 TBitmap32 处理大型位图 ( http://www.graphics32.org/wiki/ )

关于delphi - 使用 Delphi 处理大图像并保存为 .jpeg,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1639790/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com