gpt4 book ai didi

ruby-on-rails - 使用重新归档获取图像尺寸

转载 作者:行者123 更新时间:2023-12-04 13:26:32 24 4
gpt4 key购买 nike

使用Refile gem在Rails中处理文件上传,在上传过程中/之后确定图像高度和宽度的最佳方法是什么?此AFAIK没有内置的支持,我不知道如何使用MiniMagick做到这一点。

最佳答案

@russellb的评论几乎使我到了那里,但并不完全正确。如果您有一个名为@file的Refile::File,则需要:

fileIO = @file.to_io.to_io
mm = MiniMagick::Image.open(fileIO)
mm.width # image width
mm.height # image height

是的,这是对#to_io> ... <的两次调用。第一个to_io给您一个Tempfile,这不是MiniMagick想要的。希望这对某人有帮助!

- 更新 -

额外的皱纹:如果文件很小(<〜20kb,来自:ruby-forum.com/topic/106583),这将失败,因为您不会从to_io中获得临时文件,而是StringIO。如果获得StringIO并执行以下操作,则需要 fork 代码:
mm = MiniMagick::Image.read(fileio.read)

所以我的完整代码现在是:
# usually this is a Tempfile; but if the image is small, it will be 
# a StringIO instead >:[
fileio = file.to_io

if fileio.is_a?(StringIO)
mm = MiniMagick::Image.read(fileio.read)
else
file = fileio.to_io
mm = MiniMagick::Image.open(file)
end

关于ruby-on-rails - 使用重新归档获取图像尺寸,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35541978/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com