diff --git a/src/canvas.js b/src/canvas.js index fb7ec3b03..286fd0e04 100644 --- a/src/canvas.js +++ b/src/canvas.js @@ -1037,8 +1037,8 @@ var CanvasGraphics = (function canvasGraphics() { }, paintJpegXObject: function canvasGraphicsPaintJpegXObject(objId, w, h) { - var image = this.objs.get(objId); - if (!image) { + var domImage = this.objs.get(objId); + if (!domImage) { error('Dependent image isn\'t ready yet'); } @@ -1048,7 +1048,6 @@ var CanvasGraphics = (function canvasGraphics() { // scale the image to the unit square ctx.scale(1 / w, -1 / h); - var domImage = image.getImage(); ctx.drawImage(domImage, 0, 0, domImage.width, domImage.height, 0, -h, w, h); diff --git a/src/core.js b/src/core.js index 55c68352d..5faee59c7 100644 --- a/src/core.js +++ b/src/core.js @@ -562,8 +562,8 @@ var PDFDoc = (function pdfDoc() { switch (type) { case 'JpegStream': - var IR = data[2]; - new JpegImageLoader(id, IR, this.objs); + var imageData = data[2]; + loadJpegStream(id, imageData, this.objs); break; case 'Font': var name = data[2]; diff --git a/src/image.js b/src/image.js index 17ef7b06d..217e081c2 100644 --- a/src/image.js +++ b/src/image.js @@ -130,11 +130,11 @@ var PDFImage = (function pdfImage() { var buf = new Uint8Array(width * height); if (smask) { - if (smask.image.getImage) { + if (smask.image.src) { // smask is a DOM image var tempCanvas = new ScratchCanvas(width, height); var tempCtx = tempCanvas.getContext('2d'); - var domImage = smask.image.getImage(); + var domImage = smask.image; tempCtx.drawImage(domImage, 0, 0, domImage.width, domImage.height, 0, 0, width, height); var data = tempCtx.getImageData(0, 0, width, height).data; @@ -229,29 +229,10 @@ var PDFImage = (function pdfImage() { return constructor; })(); -var JpegImageLoader = (function jpegImage() { - function JpegImageLoader(objId, imageData, objs) { - var src = 'data:image/jpeg;base64,' + window.btoa(imageData); - - var img = new Image(); - img.onload = (function jpegImageLoaderOnload() { - this.loaded = true; - - objs.resolve(objId, this); - - if (this.onLoad) - this.onLoad(); - }).bind(this); - img.src = src; - this.domImage = img; - } - - JpegImageLoader.prototype = { - getImage: function jpegImageLoaderGetImage() { - return this.domImage; - } - }; - - return JpegImageLoader; -})(); - +function loadJpegStream(id, imageData, objs) { + var img = new Image(); + img.onload = (function jpegImageLoaderOnload() { + objs.resolve(id, img); + }); + img.src = 'data:image/jpeg;base64,' + window.btoa(imageData); +} diff --git a/src/obj.js b/src/obj.js index 474b54336..9d32956b7 100644 --- a/src/obj.js +++ b/src/obj.js @@ -598,7 +598,7 @@ var XRef = (function xRefXRef() { e = parser.getObj(); } // Don't cache streams since they are mutable (except images). - if (!isStream(e) || e.getImage) + if (!isStream(e) || e instanceof JpegStream) this.cache[num] = e; return e; }