我正在尝试在 Linux 机器上使用 Ruby 生成缩略图。
该过程包括确定已生成的 5 个缩略图中哪一个最有意义(这里所说的“有意义”是指选择尺寸最大的缩略图,因为尺寸越大意味着更多细节)。
后来我把最大的文件重命名为通用名称,以便以后使用。代码似乎对我不起作用,我无法理解原因,有什么建议可以改进吗?
提前谢谢您。
这是我的代码:
为了满足您可能的需求,变量thumb_dir
包含我们从中获取缩略图的目录的路径。
max = File.size("#{thumb_dir}/thumb01.jpg").to_f #
name = "thumb01.jpg"
for i in 2..5
if max < File.size("#{thumb_dir}/thumb0'"#{i}"'.jpg" ).to_f?
max = File.size("#{thumb_dir}/thumb0'"{i}"'.jpg"
name = "thumb0" + "#{i}" + ".jpg"
end
end
File.rename("#{thumb_dir}/#{name}", "thumbnail.jpg") `
最佳答案
i = (1..5).map {|i| File.size("#{thumb_dir}/thumb#{i}.jpg").to_f }.each_with_index.max[1]
File.rename("#{thumb_dir}/thumb#{i + 1}.jpg", "thumbnail.jpg")
它有什么作用?
(1..5).map {|i| File.size("#{thumb_dir}/thumb#{i}.jpg").to_f }
我们得到了一个文件大小的数组,从thumb1.jpg到thumb5.jpg
array.each_with_index.max[1]
用于获取数组中最大值的索引。
File.rename("#{thumb_dir}/thumb#{i+1}.jpg", "thumbnail.jpg")
现在我们知道 i 是数组中最大值的索引,那么 thumb#{(i+1)}.jpg
就是大小最大的文件,因此这就是我们要替换其名称的文件。
关于Ruby 代码查找特定文件并重命名它,不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37470211/