如何检查JPEG是否可读

时间:2016-06-20 18:50:42

标签: ruby jpeg open-uri

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

示例:

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

我使用OpenURI下载我的图片,然后将其输出到一个文件中。是否有允许这样做的功能/宝石?

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图片。

1 个答案:

答案 0 :(得分:2)

判断JPEG图像(大多数压缩图像格式为真)的唯一真实方法是解压缩它。您可以对流结构进行一些健全性检查,以显示一些无法打开的流。但是,压缩数据中的错误只能通过扩展它们来找到。在PNG中没有CRC检查。