diff --git a/src/core.js b/src/core.js index a52f2bdd0..980a7b1e9 100644 --- a/src/core.js +++ b/src/core.js @@ -561,14 +561,7 @@ var PDFDoc = (function pdfDoc() { switch (type) { case 'JpegStream': 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; - + loadJpegStream(id, imageData, this.objs); break; case 'Font': var name = data[2]; diff --git a/src/image.js b/src/image.js index 5392202c7..217e081c2 100644 --- a/src/image.js +++ b/src/image.js @@ -228,3 +228,11 @@ var PDFImage = (function pdfImage() { }; return constructor; })(); + +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 e00e54b91..e105e2e65 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.src) + if (!isStream(e) || e instanceof JpegStream) this.cache[num] = e; return e; }