我正在try 通过使用image.Decode()
方法对图像文件(PNG、JPG、GIF和BMP格式)进行解码来创建PDF,以获得image.Image
.然后,我将像素数据写入PDF流,该流稍后被压缩.我遇到的问题是,当我解码JPEG时,生成的PDF中的 colored颜色 不正确.所有其他图像格式都能正常工作.我附上了这个问题的截图.
屏幕截图: https://i.imgur.com/Bzz6EnD.png个
有人知道是什么导致了这个问题吗?在使用image.Decode()
时,是否有特定的方式需要以不同的方式处理JPG?任何关于如何解决这个问题的建议都将不胜感激!
编辑:
代码:
var iData image.Image
iFile, err := os.Open(path)
if err != nil {
[...]
} else {
iData, _, err = image.Decode(iFile)
}
[...]
x.Dictionary.Set("ColorSpace", "/DeviceRGB")
x.Dictionary.Set("BitsPerComponent", 8)
for j := 0; j < iData.Bounds().Dy()/pixelMul; j++ {
for k := 0; k < iData.Bounds().Dx()/pixelMul; k++ {
r, g, b, _ := iData.At(k*pixelMul, j*pixelMul).RGBA()
x.Write([]byte{byte(r), byte(g), byte(b)})
}
}
[...]
在pdf中生成的图像在直接使用jpeg.Decode
时看起来是一样的.
我期望在生成的PDF中的图像看起来就像原始的PNG,可能有一点褪色.
原始PNG:https://i.imgur.com/cjjOdxj.png
转换后的JPG:https://i.imgur.com/I5kxTab.jpeg
其他JPG也有相同的问题,例如来自W3Chttps://www.w3.org/MarkUp/Test/xhtml-print/20050519/tests/A_2_1-BF-01.htm的第一个测试JPEG