如何获取图像文件数组,然后在javascript中重新缩放它们?

如何获取图像文件数组,然后在javascript中重新缩放它们?,javascript,arrays,parse-platform,Javascript,Arrays,Parse Platform,我正确的做法是用单个图像文件抓取单独的列,然后重新缩放它们。不过,这次我想抓取图像数组并缩放其中的图像,然后最终将修改后的数组存储在数据库中 代码如下: var Image = require("parse-image"); Pars e.Cloud.beforeSave("Activity", function(request, response) { var imagePromises = []; var activity = request.object

我正确的做法是用单个图像文件抓取单独的列,然后重新缩放它们。不过,这次我想抓取图像数组并缩放其中的图像,然后最终将修改后的数组存储在数据库中

代码如下:

var Image = require("parse-image");
Pars

    e.Cloud.beforeSave("Activity", function(request, response) {
      var imagePromises = [];

      var activity = request.object;

      // you said "image" is always populated, so always add it
      imagePromises.push(createImagePromise(activity, "image1", activity.get("image1").url()));

      // now conditionally add the other promises, using a loop to further reduce repeated code
      for (var i = 2; i < 7; i++) {
          var imageColumn = "image" + i;
          if (activity.get(imageColumn) && activity.get(imageColumn).url()) {
              imagePromises.push(createImagePromise(activity, imageColumn, activity.get(imageColumn).url()));
          }
      }

      // now we have all the promises, wait for them all to finish before we're done
      Parse.Promise.when(imagePromises).then(function () {
          response.success();
      }, function (error) {
          response.error(error);
      });

      function createImagePromise(activity, imageColumn, url) {
          // we want to return the promise
          return Parse.Cloud.httpRequest({
              url: url
          }).then(function(response) {
            var image = new Image();
            return image.setData(response.buffer);

          }).then(function(image) {
            // Resize the image.
            return image.scale({
              width: 110,
              height: 110
            });

          }).then(function(image) {
            // Make sure it's a JPEG to save disk space and bandwidth.
            return image.setFormat("JPEG");

          }).then(function(image) {
            // Get the image data in a Buffer.
            return image.data();

          }).then(function(buffer) {
            // Save the image into a new file.
            var base64 = buffer.toString("base64");
            var cropped = new Parse.File("image.jpg", { base64: base64 });
            return cropped.save();

          }).then(function (cropped) {
              // Attach the image file to the original object.
              activity.set(imageColumn, cropped);
          });
      }



    });
var Image=require(“解析图像”);
帕斯
e、 Cloud.beforeSave(“活动”、函数(请求、响应){
var=[];
var activity=request.object;
//你说过“图像”总是填充的,所以总是添加它
push(createImagePromise(activity,“image1”,activity.get(“image1”).url());
//现在有条件地添加其他承诺,使用循环进一步减少重复代码
对于(变量i=2;i<7;i++){
var imageColumn=“image”+i;
if(activity.get(imageColumn)和&activity.get(imageColumn.url()){
push(createImagePromise(activity,imageColumn,activity.get(imageColumn.url());
}
}
//现在我们有了所有的承诺,等它们都完成了再做
Parse.Promise.when(imagePromises).then(函数(){
回答:success();
},函数(错误){
响应。错误(error);
});
函数createImagePromise(活动、imageColumn、url){
//我们要回报这个承诺
返回Parse.Cloud.httpRequest({
url:url
}).然后(功能(响应){
var image=新图像();
返回image.setData(response.buffer);
}).然后(函数(图像){
//调整图像大小。
返回图像比例({
宽度:110,
身高:110
});
}).然后(函数(图像){
//确保它是JPEG格式,以节省磁盘空间和带宽。
返回image.setFormat(“JPEG”);
}).然后(函数(图像){
//获取缓冲区中的图像数据。
返回image.data();
}).then(功能(缓冲区){
//将图像保存到新文件中。
var base64=buffer.toString(“base64”);
var cropped=newparse.File(“image.jpg”,{base64:base64});
返回裁剪后的.save();
}).然后(函数(裁剪){
//将图像文件附着到原始对象。
activity.set(imageColumn,裁剪);
});
}
});
我的数据库“images”中有一个字段,它包含一个图像数组

如果能帮上忙,我将不胜感激

谢谢你的时间