Merge pull request #776 from jviereck/jpegimage_cleanup

Don't create JpegImage object anymore - go functional style
This commit is contained in:
notmasteryet 2011-12-07 11:11:11 -08:00
commit cb592d6e51
4 changed files with 14 additions and 34 deletions

View File

@ -1037,8 +1037,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');
} }
@ -1048,7 +1048,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

@ -562,8 +562,8 @@ 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); loadJpegStream(id, imageData, this.objs);
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;
@ -229,29 +229,10 @@ var PDFImage = (function pdfImage() {
return constructor; return constructor;
})(); })();
var JpegImageLoader = (function jpegImage() { function loadJpegStream(id, imageData, objs) {
function JpegImageLoader(objId, imageData, objs) { var img = new Image();
var src = 'data:image/jpeg;base64,' + window.btoa(imageData); img.onload = (function jpegImageLoaderOnload() {
objs.resolve(id, img);
var img = new Image(); });
img.onload = (function jpegImageLoaderOnload() { img.src = 'data:image/jpeg;base64,' + window.btoa(imageData);
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

@ -598,7 +598,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 instanceof JpegStream)
this.cache[num] = e; this.cache[num] = e;
return e; return e;
} }