2014-11-28 2 views
0

Amazon S3에 업로드하기 전에 GraphicsMagick을 사용하여 이미지의 크기를 조정하려고합니다.GraphicsMagick 이진 데이터에서 이미지 크기를 조정하는 방법

 reader.onload = function(e) { 

      Meteor.call('s3_upload', file, reader.result) 
     } 
     reader.readAsDataURL(file) 

그러나 문제는 파일 URL이 아닙니다 reader.result입니다 :

는이 같은에서 이미지 파일의 바이너리 데이터를 얻을 수있었습니다. 이진 문자열 데이터입니다.

이 바이너리 문자열 데이터를 가져 와서 크기를 조정하려면 어떻게해야합니까?

답변

1

귀하의 질문에 대한 늦은 답변 일 수도 있지만 동일한 질문이있는 사람은이 답변에 동의 할 수 있습니다.

Fs.Store collectionFS에서

Image Manipulation, 여기를 초기화하는 동안 당신은 transformWrite 옵션에서 GraphicsMagick에 업로드하기 전에 이미지 크기를 조정할 수 있습니다

는 collectionFS S3 doc

var avatarStoreLarge = new FS.Store.S3("avatarsLarge", { 
    accessKeyId: "ID-HERE", 
    secretAccessKey: "ACCESS-KEY-HERE", 
    bucket: "avatars.large", 
    transformWrite: function(fileObj, readStream, writeStream) { 
    gm(readStream, fileObj.name()).resize('250', '250').stream().pipe(writeStream) 
    } 
}); 

var avatarStoreSmall = new FS.Store.S3("avatarsSmall", { 
    accessKeyId: "ID-HERE", 
    secretAccessKey: "ACCESS-KEY-HERE", 
    bucket: "avatars.small", 
    beforeWrite: function(fileObj) { 
    fileObj.size(20, {store: "avatarStoreSmall", save: false}); 
    }, 
    transformWrite: function(fileObj, readStream, writeStream) { 
    gm(readStream, fileObj.name()).resize('20', '20').stream().pipe(writeStream) 
    } 
}); 


Avatars = new FS.Collection("avatars", { 
    stores: [avatarStoreSmall, avatarStoreLarge], 
    filter: { 
    allow: { 
     contentTypes: ['image/*'] 
    } 
    } 
}); 
에서 조각입니다