jspdf添加图片:错误,提供的数据不是JPEG格式。

4

我正在尝试向我的pdf添加一张图片:

var image = '../images/example.jpg';
doc.addImage(image, 'JPEG', 0, 0, 700, 145);

我收到了这个错误:

错误:提供的数据不是JPEG格式

但是,当我添加一个base64图片时:

var image = 'data:image/jpeg;base64,/9j/6GADS...'
doc.addImage(image, 'JPEG', 0, 0, 700, 145);

它很好地工作了!

为什么第一个版本不起作用? 我正在尝试这样做:

var image = $base64.encode('../images/example.jpg')

再次出现相同的错误!

这里发生了什么?有什么解决方案吗?


我有这个确切的问题,但只在实际版本上出现,而不是在我的本地版本上。这怎么可能,缺少了什么?我刚刚更新了文件,现在根本不起作用。除下面之外还有其他解决方案吗?我将其类比于上面,但响应类型为blob。 - Fastersixth
1个回答

3
你可以使用这个
function toDataUrl(src, callback, outputFormat) {
  // Create an Image object
  var img = new Image();
  // Add CORS approval to prevent a tainted canvas
  img.crossOrigin = 'Anonymous';
  img.onload = function() {
    // Create an html canvas element
    var canvas = document.createElement('CANVAS');
    // Create a 2d context
    var ctx = canvas.getContext('2d');
    var dataURL;
    // Resize the canavas to the image dimensions
    canvas.height = this.height;
    canvas.width = this.width;
    // Draw the image to a canvas
    ctx.drawImage(this, 0, 0);
    // Convert the canvas to a data url
    dataURL = canvas.toDataURL(outputFormat);
    // Return the data url via callback
    callback(dataURL);
    // Mark the canvas to be ready for garbage 
    // collection
    canvas = null;
  };
  // Load the image
  img.src = src;
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接