img2pdf 报 img2pdf.AlphaChannelError: Refusing to work on images with alpha channel 的解决方案

 

问题描述:

在使用img2pdf转换png到pdf时候,报了如下错误

img2pdf.AlphaChannelError: Refusing to work on images with alpha channel

解决方案:

 通过一番查找,发现是pngAlpha通道的问题

不少解决方案都是自己写的函数去除这个通道,但尝试了,行不通。

最后找到个工具--Pngcrush,然后完美解决了这个问题。

来到官网

https://pmt.sourceforge.io/pngcrush/

下载二进制压缩文件

本地解压后,上传服务器(Ubuntu)

文件目录如下,是C语言的程序,后续需要构建编译

 编译:

make -j8

注:-j8是指多线程执行,提高效率

编译后的结果:生成pngcrush文件

执行pngcrush:

./pngcrush 

将pngcrush设置环境变量,待后续去除png的Alpha通道用:

export PATH=$PATH:/root/wwww/selenium_screenshot/pngcrush-1.8.11/pcr010811/

去除png图片(1234.png)的Alpha通道,重命名为4321.png:

pngcrush 1234.png 4321.png

 

 然后再重新调用img2pdf,对4321.png进行转换,转换成outputl.pdf文件

 

大功告成! !

 参考链接:

https://blog.csdn.net/qq_43668007/article/details/87197774

https://pmt.sourceforge.io/pngcrush

 https://mlog.club/article/4090462

原文地址:https://www.cnblogs.com/liangmingshen/p/13634074.html