Selaa lähdekoodia

普通模式下增加根据大小横排显示

ting.yin 6 vuotta sitten
vanhempi
commit
98b36ccb3a

+ 23 - 8
stmms-web/src/main/webapp/static/mark-new/js/modules/image-builder.js

@@ -23,25 +23,40 @@ ImageBuilder.prototype.build = function(task, callback) {
     var imageObjects = [];
     this.loadImages(imageObjects, task.pictureUrls, 0, function(images) {
         var maxWidth = 0;
-        var totalHeight = 0;
+        var maxHeight = 0;
         for (var i = 0; i < images.length; i++) {
             //计算最大宽度与合计高度
             var image = images[i];
             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.fillRect(0, 0, maxWidth, totalHeight);
+            self.ctx.fillRect(0, 0, maxWidth*widthCount, maxHeight*heightCount);
             //绘画到画布
             var height = 0;
+            var width = 0;
+            var x = 0;
             for (var i = 0; i < images.length; 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");