2015-09-03 189 views
0

我从base64创建PDF编码的PNG图像。由此产生的PDF与原始PNG图像具有明显不同的色调。jsPDF使用不同于原始颜色的颜色创建PDF

相同base64编码图像在浏览器中正确渲染。

var doc = new jsPDF('p', 'mm', 'a4', false); 
doc.addImage(imgData, 'png', 100, 200, 280, 210, undefined, 'slow'); 
doc.save(type + '.pdf') 
+0

那么你是否在项目的github上报告错误? – epascarello

+0

我已经在项目的github上创建了问题https://github.com/MrRio/jsPDF/issues/577 – MobileDream

+0

你可以把你的代码,也许可以有一个编码错误 –

回答

0

PNG图像可能包含gamma信息。某些浏览器读取该信息并在显示图像时“修复”颜色。

当图像被jsPDF解析时,它会对您的浏览器进行不同的伽马信息处理。 jsPDF要么应用伽马校正,而且浏览器不是,反之亦然。

为了获得一致的结果,您可以尝试使用诸如TweakPNG for Windows或PNGCrush和ImageOptim for Mac之类的工具从原始PNG中移除伽马信息。

+0

我已经使用PNGCrush明确地从原始中删除伽马信息PNG图像和我使用jsPDF保存PDF时得到的结果完全一样。这证实jsPDF正在忽略或不正确处理gamma信息。 – MobileDream