检查文件是否是有效图像

som*_*guy 4 ruby

我正在使用 rmagick 来操作图像文件。我在每个文件上使用 ImageList.new 来开始。当我将此方法应用于无效的图像文件时,出现以下错误,该错误会中断脚本的执行:

RMagick.rb:1635:in `read': 不正确的图像标题 (Magick::ImageMagickError)

因此,我希望能够在使用此方法之前检查文件是否是有效的图像文件。

有任何想法吗?谢谢。

Zac*_* Xu 5

您可以检查图像的格式。例如:

image = Magick::Image::read(file_path).first
image.format
Run Code Online (Sandbox Code Playgroud)

因此您可以检查格式是否是您期望的格式之一:

image = Magick::Image::read(file_path).first
%w(JPEG GIF TIFF PNG).include? image.format
Run Code Online (Sandbox Code Playgroud)

这不是基于文件扩展名。它告诉你文件的实际格式。