【问题标题】:How to check if a JPEG is readable如何检查 JPEG 是否可读
【发布时间】:2016-06-20 18:50:41
【问题描述】:

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

例子:

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

【问题讨论】:

  • 不,我想知道如何在 Ruby 中做到这一点
  • 我会这样做的,谢谢
  • @Mo H. 改变了问题(感谢您的建议)
  • 通过阅读帮助页面和查看其他问题,您会弄明白的。 SO 是一本在线参考书,您正在该书中创建一篇文章以帮助其他人。无需告诉我们您进行了更改,我们可以查看更改的时间和内容,因为 SO 保留了编辑历史记录。
  • 不知道,谢谢提示

标签: ruby jpeg open-uri


【解决方案1】:

判断 JPEG 图像(与大多数压缩图像格式一样)是否正确的唯一方法是对其进行解压缩。您可以对流结构进行一些完整性检查,以显示一些无法打开的流。但是,压缩数据中的错误只能通过展开它们来发现。 JPEG 中没有像 PNG 中那样的 CRC 检查。

【讨论】:

  • 关于如何扩展然后检查原生红宝石和/或宝石的任何线索?
  • 不是这样。您必须找到与它们一起使用的解码器。
猜你喜欢
  • 2012-08-07
  • 2021-07-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-02-28
  • 2011-04-25
  • 2013-06-23
  • 2010-11-25
相关资源
最近更新 更多