gpt4 book ai didi

imagemagick - Magickwand 转换为 TIFF&CCITT 组 4 压缩给出未压缩的图像

转载 作者:行者123 更新时间:2023-12-05 01:19:37 25 4
gpt4 key购买 nike

尝试使用 CCITT 组 4 压缩将 24 bpp 位图转换为黑白 TIFF。结果是预期的 TIFF 1 bpp 图像,但未压缩。

我正在使用具有 magickwand 绑定(bind)的 FreePascal,并且状态永远不会是 MagickFalse:

MagickWandGenesis;
wand := NewMagickWand;
try
status := MagickReadImage(wand,PChar(InputFile));
if (status = MagickFalse) then HandleError;

status := MagickSetImageFormat(wand,'TIFF');
if (status = MagickFalse) then HandleError;

// convert to black & white/lineart
status := MagickSetImageType(wand,BilevelType);
if (status = MagickFalse) then HandleError;

// Group4Compression seems defined as 4 which
// apparently doesn't match imagemagick source. Bug:
//http://mantis.freepascal.org/view.php?id=26723
status := MagickSetImageCompression(wand,CompressionType(7)); //was Group4Compression
if (status = MagickFalse) then HandleError;

// Apparently set(image)compresionquality and
// stripimage are necessary to actually compress
status := MagickSetImageCompressionQuality(wand,0);
if (status = MagickFalse) then HandleError;
status := MagickStripImage(wand);
if (status = MagickFalse) then HandleError;

status := MagickWriteImage(wand,PChar(OutputFile));
if (status = MagickFalse) then HandleError;

finally
wand := DestroyMagickWand(wand);
end;
MagickWandTerminus;

源图像位于 http://filehorst.de/d/bmqjzDuB

原始(错误)程序源代码位于 http://filehorst.de/d/bluhjivq

原始(错误)输出图像位于 http://filehorst.de/d/bhlbjHgp

我做错了什么?

编辑:已解决;在场外获得了解决方案:FreePascal 绑定(bind)中的 CompressionType 枚举可能已过时 - Group4Compression 为 4 (IIRC) 而它应该为 7。

我会将赏金奖励给 Mark Setchell,因为他的回答是解决方案的必要组成部分。上面的源代码更新为正确的版本。

最佳答案

至少在 PHP 版本中,设置压缩类型似乎并没有实际压缩图像 - 请参阅底部的评论 here .

它还在我发现的所有示例中显示,您必须随后调用 MagickSetImageCompressionQuality()StripImage() 才能实际执行压缩 - 参见 here .

关于imagemagick - Magickwand 转换为 TIFF&CCITT 组 4 压缩给出未压缩的图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25719495/

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