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) {
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);

View File

@ -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];

View File

@ -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;
})();

View File

@ -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;
}