我正在尝试确定在流星上存储在GridFS中的图像的宽度,以便我可以重新调整模态对话框的大小。
我有一个模板帮手
Template.projectImageModalInner.image = function() {
var imageId = Session.get("selectedImageId");
//console.log("projectImageModalInner imageId: " +imageId);
var image = imageFS.findOne({_id: imageId});
url = image.fileHandler.default1.url;
console.log(url);
console.log(Imagemagick.identify(url));
return imageFS.findOne({_id: imageId});
}
将正确的图像返回到要显示的对话框,但我确实遇到了大小问题。对Imagemagick.identify的调用会出现错误,上面写着“无法在未定义时调用方法识别”,但上面的行会打印出正确的URL。
图片网址的控制台日志显示
/cfs/images/i5mSRED6mYgo2vK84_default1.jpg
这是模板中显示的图像的正确URL。
我想最终使用图像宽度设置会话变量,以便可以动态调整对话框的大小。
我已经尝试从html(没有欢乐),从其他助手获得这个大小,但到目前为止没有任何工作。
任何人都可以指出我在这里做错了什么,或者,建议另一种方式?
答案 0 :(得分:2)
我认为你必须在上传后使用服务器端的graphicsmagick / imagemagick库来获取图像大小。
首先,使用服务器集合上的transformWrite函数获取gm.size()
的图像尺寸,然后将这些值附加到fileObj.metadata。
检查这两个方法如何解释所有相关部分: