Inline JpegImageLoader to remove new JpegImageLoader call

This commit is contained in:
Julian Viereck 2011-12-05 17:59:03 +01:00
parent 685a263e54
commit 97802aac64
4 changed files with 14 additions and 35 deletions

View File

@ -969,8 +969,8 @@ var CanvasGraphics = (function canvasGraphics() {
}, },
paintJpegXObject: function canvasGraphicsPaintJpegXObject(objId, w, h) { paintJpegXObject: function canvasGraphicsPaintJpegXObject(objId, w, h) {
var image = this.objs.get(objId); var domImage = this.objs.get(objId);
if (!image) { if (!domImage) {
error('Dependent image isn\'t ready yet'); error('Dependent image isn\'t ready yet');
} }
@ -980,7 +980,6 @@ var CanvasGraphics = (function canvasGraphics() {
// scale the image to the unit square // scale the image to the unit square
ctx.scale(1 / w, -1 / h); ctx.scale(1 / w, -1 / h);
var domImage = image.getImage();
ctx.drawImage(domImage, 0, 0, domImage.width, domImage.height, ctx.drawImage(domImage, 0, 0, domImage.width, domImage.height,
0, -h, w, h); 0, -h, w, h);

View File

@ -560,8 +560,15 @@ var PDFDoc = (function pdfDoc() {
switch (type) { switch (type) {
case 'JpegStream': case 'JpegStream':
var IR = data[2]; var imageData = data[2];
new JpegImageLoader(id, IR, this.objs);
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; break;
case 'Font': case 'Font':
var name = data[2]; var name = data[2];

View File

@ -130,11 +130,11 @@ var PDFImage = (function pdfImage() {
var buf = new Uint8Array(width * height); var buf = new Uint8Array(width * height);
if (smask) { if (smask) {
if (smask.image.getImage) { if (smask.image.src) {
// smask is a DOM image // smask is a DOM image
var tempCanvas = new ScratchCanvas(width, height); var tempCanvas = new ScratchCanvas(width, height);
var tempCtx = tempCanvas.getContext('2d'); var tempCtx = tempCanvas.getContext('2d');
var domImage = smask.image.getImage(); var domImage = smask.image;
tempCtx.drawImage(domImage, 0, 0, domImage.width, domImage.height, tempCtx.drawImage(domImage, 0, 0, domImage.width, domImage.height,
0, 0, width, height); 0, 0, width, height);
var data = tempCtx.getImageData(0, 0, width, height).data; var data = tempCtx.getImageData(0, 0, width, height).data;
@ -228,30 +228,3 @@ var PDFImage = (function pdfImage() {
}; };
return constructor; 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;
})();

View File

@ -589,7 +589,7 @@ var XRef = (function xRefXRef() {
e = parser.getObj(); e = parser.getObj();
} }
// Don't cache streams since they are mutable (except images). // Don't cache streams since they are mutable (except images).
if (!isStream(e) || e.getImage) if (!isStream(e) || e.src)
this.cache[num] = e; this.cache[num] = e;
return e; return e;
} }