Javascript jsPDF创建颜色不同于原始PDF的PDF

Javascript jsPDF创建颜色不同于原始PDF的PDF,javascript,html,pdf,png,jspdf,Javascript,Html,Pdf,Png,Jspdf,我正在从base64编码的PNG图像创建PDF。生成的PDF与原始PNG图像的色调明显不同 在浏览器中正确呈现相同的base64编码图像 var doc = new jsPDF('p', 'mm', 'a4', false); doc.addImage(imgData, 'png', 100, 200, 280, 210, undefined, 'slow'); doc.save( type + '.pdf') PNG图像中可能包含伽马信息。一些浏览器在显示图像时读取该信息并“修复”颜色 使用

我正在从base64编码的PNG图像创建PDF。生成的PDF与原始PNG图像的色调明显不同

在浏览器中正确呈现相同的base64编码图像

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

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

使用jsPDF解析图像时,它处理gamma信息的方式与浏览器不同。jsPDF正在应用gamma校正,而您的浏览器没有,反之亦然


为了获得一致的结果,您可以尝试使用TweakPNG For Windows或PNGCrush和ImageOptim For Mac等工具从原始PNG中删除gamma信息

那么你在项目的github上报告了一个错误吗?我在项目的github上创建了一个问题。你可以把你的代码放进去吗?可能有一个编码错误。我用PNGCrush从原始PNG图像中显式删除了gamma信息,我得到了与使用jsPDF保存PDF时完全相同的结果。这确认了jsPDF忽略或未正确处理gamma信息。