リモート画像の寸法を素早く取得する方法 質問する

リモート画像の寸法を素早く取得する方法 質問する

私は、imagesize gem を使用してリモート イメージのサイズを確認し、十分な大きさのイメージのみを配列にプッシュしています。

require 'open-uri'
require 'image_size'
data = Nokogiri::HTML(open(url))
images = []
forcenocache = Time.now.to_i # No cache because jquery load event doesn't fire for cached images
data.css("img").each do |image|
  image_path = URI.join(site, URI.encode(image[:src]))
  open(image_path, "rb") do |fh|
    image_size = ImageSize.new(fh.read).get_size()
    unless image_size[0] < 200 || image_size[1] < 100
      image_element = "<img src=\"#{image_path}?#{forcenocache}\">"
      images.push(image_element)
    end
  end
end

フロントエンドで JS を使用して画像のサイズを確認しようとしましたが、一度に読み込める画像の数にはブラウザの制限があるようです。

imagesize で実行すると、JS を使用するよりもはるかに遅くなります。これを行うより良い、より高速な方法はありますか?

ベストアンサー1

この宝石はあなたが望むことを実現すると思いますhttps://github.com/sdsykes/fastimage

FastImageは、URIを指定して、必要な情報だけを取得することで、画像のサイズやタイプを見つけます。

おすすめ記事