diff --git a/src/canvas.js b/src/canvas.js index 0913b582a..bba584be1 100644 --- a/src/canvas.js +++ b/src/canvas.js @@ -969,8 +969,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'); } @@ -980,7 +980,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 284b3cb40..a52f2bdd0 100644 --- a/src/core.js +++ b/src/core.js @@ -560,8 +560,15 @@ var PDFDoc = (function pdfDoc() { switch (type) { case 'JpegStream': - var IR = data[2]; - new JpegImageLoader(id, IR, this.objs); + var imageData = data[2]; + + var src = 'data:image/jpeg;base64,' + window.btoa(imageData); + var img = new Image(); + img.onload = (function jpegImageLoaderOnload() { + this.objs.resolve(id, img); + }).bind(this); + img.src = src; + break; case 'Font': var name = data[2]; diff --git a/src/image.js b/src/image.js index 17ef7b06d..5392202c7 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; @@ -228,30 +228,3 @@ 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; -})(); - diff --git a/src/obj.js b/src/obj.js index 7aebb732a..e00e54b91 100644 --- a/src/obj.js +++ b/src/obj.js @@ -589,7 +589,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.src) this.cache[num] = e; return e; }