在流星图像上传前调用图像处理功能

时间:2015-03-09 09:54:51

标签: meteor

在我的演示中,我使用https://github.com/tomitrescak/meteor-uploads包进行图片上传,其工作方式就像魅力一样。现在我想在上传文件之前调用我的图像处理功能。

完成图像处理功能后,我想开始将图像上传到我的本地(已经通过meteor-uploads包工作)。

如何实现?

1 个答案:

答案 0 :(得分:0)

我会切换到使用CollectionFS。他们具有文件文件上传的图像处理(imagemagick,graphicsmagick)功能。因此,当您使用CollectionFS定义集合时,请使用:

Images = new FS.Collection("images", {
  stores: [
   new FS.Store.FileSystem("thumbs", { transformWrite: createThumb }),
   new FS.Store.FileSystem("images"),
  ],
 filter: {
   allow: {
     contentTypes: ['image/*'] //allow only images in this FS.Collection
   }
 }
});

var createThumb = function(fileObj, readStream, writeStream) {
  // Transform the image into a 10x10px thumbnail
  gm(readStream, fileObj.name()).resize('10', '10').stream().pipe(writeStream);
};

请注意,createThumb在函数graphicsmagickcreateThumb)中使用gm来为您调整图像大小,然后将其插入特定商店下的集合imagesthumbs