如何检查 JPEG 是否可读

How to check if a JPEG is readable

是否可以检查我下载的图片是否可读,如果图片查看器要告诉我由于某种原因无法打开它。

示例:

"invalid byte sequence in conversion input" when mousepad is used because Ephoto could not open it on Linux ) in Ruby

我用 OpenURI 下载我的图片,然后将它输出到一个文件中。是否有 function/gem 可以做到这一点?

pic_buffer = open(my_link, "User-Agent" => "Ruby/#{RUBY_VERSION}")
if function_to_check_if_the_picture_is_readable(pic_buffer) == false
  abort("file is unreadable")
end
if pic_buffer != nil
  File.open(name_buffer + ".jpg", 'wb') do |pic|
    pic << pic_buffer.read
  end
end

我只下载 JPEG 图片。

判断 JPEG 图像(对于大多数压缩图像格式都是如此)的唯一真实方法是解压缩它。您可以对流结构进行一些健全性检查,以显示一些无法打开的流。然而,压缩数据中的错误只能通过展开它们来发现。 JPEG 中没有像 PNG 中那样的 CRC 检查。