|
@@ -23,25 +23,40 @@ ImageBuilder.prototype.build = function(task, callback) {
|
|
var imageObjects = [];
|
|
var imageObjects = [];
|
|
this.loadImages(imageObjects, task.pictureUrls, 0, function(images) {
|
|
this.loadImages(imageObjects, task.pictureUrls, 0, function(images) {
|
|
var maxWidth = 0;
|
|
var maxWidth = 0;
|
|
- var totalHeight = 0;
|
|
|
|
|
|
+ var maxHeight = 0;
|
|
for (var i = 0; i < images.length; i++) {
|
|
for (var i = 0; i < images.length; i++) {
|
|
//计算最大宽度与合计高度
|
|
//计算最大宽度与合计高度
|
|
var image = images[i];
|
|
var image = images[i];
|
|
maxWidth = Math.max(maxWidth, image.width);
|
|
maxWidth = Math.max(maxWidth, image.width);
|
|
- totalHeight += image.height;
|
|
|
|
|
|
+ maxHeight = Math.max(maxHeight, image.height);
|
|
}
|
|
}
|
|
- if (maxWidth > 0 && totalHeight > 0) {
|
|
|
|
|
|
+ //列数和行数
|
|
|
|
+ var bodyWidth = $(document.body).width();
|
|
|
|
+ var widthCount = parseInt(bodyWidth / maxWidth);
|
|
|
|
+ var heightCount = Math.ceil(images.length/widthCount);
|
|
|
|
+ if (maxWidth > 0 && maxHeight > 0) {
|
|
//设置画布大小及背景颜色
|
|
//设置画布大小及背景颜色
|
|
- self.canvas.width = maxWidth;
|
|
|
|
- self.canvas.height = totalHeight;
|
|
|
|
|
|
+ self.canvas.width = maxWidth*widthCount;
|
|
|
|
+ self.canvas.height = maxHeight*heightCount;
|
|
self.ctx.fillStyle = "#FFFFFF";
|
|
self.ctx.fillStyle = "#FFFFFF";
|
|
- self.ctx.fillRect(0, 0, maxWidth, totalHeight);
|
|
|
|
|
|
+ self.ctx.fillRect(0, 0, maxWidth*widthCount, maxHeight*heightCount);
|
|
//绘画到画布
|
|
//绘画到画布
|
|
var height = 0;
|
|
var height = 0;
|
|
|
|
+ var width = 0;
|
|
|
|
+ var x = 0;
|
|
for (var i = 0; i < images.length; i++) {
|
|
for (var i = 0; i < images.length; i++) {
|
|
var image = images[i];
|
|
var image = images[i];
|
|
- self.ctx.drawImage(image, 0, 0, image.width, image.height, 0, height, image.width, image.height);
|
|
|
|
- height += image.height;
|
|
|
|
|
|
+
|
|
|
|
+ var y = i%widthCount;
|
|
|
|
+ if(y==0){//另起一行
|
|
|
|
+ width = 0;
|
|
|
|
+ x=0;
|
|
|
|
+ }
|
|
|
|
+ width = maxWidth*x;
|
|
|
|
+ var z = parseInt(i/widthCount);
|
|
|
|
+ height = maxHeight*z;
|
|
|
|
+ self.ctx.drawImage(image, 0, 0, image.width, image.height,width , height, image.width, image.height);
|
|
|
|
+ x++;
|
|
}
|
|
}
|
|
//生成合并后的图像数据
|
|
//生成合并后的图像数据
|
|
task.imageData = this.canvas.toDataURL("image/jpeg");
|
|
task.imageData = this.canvas.toDataURL("image/jpeg");
|