Uzaktaki görüntülerin boyutlarını kontrol etmek için görüntü gemini kullanıyorum ve sadece bir dizide yeterince büyük olan resimleri itin. Uzak görüntü boyutlarını elde etmenin hızlı yolu
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
Ben görüntü boyutlarını kontrol etmek için ön-uç JS kullanarak çalıştı ama aynı anda yüklenebilir kaç görüntüleri bir tarayıcı sınırı var gibi görünüyor.
Görselleştirmeyle yapmak JS'yi kullanmaktan çok daha yavaştır. Bunu yapmak için daha iyi ve daha hızlı yollar?
Benim öneriler gerektiği gibi küçük olarak getirecek şekilde uri verilen resmin boyutunu veya türünü bulur istiyorum ne yapar düşünmek - ilk başta Bir sayfadaki tüm görüntü bağlantılarını bulup kopyaları filtreleyin. Muhtemelen, sadece bir parça resim yükleniyor (birkaç ilk kilobayt) - bunu deneyin. Ayrıca, paralel olarak birden fazla görüntüyü kontrol etmek için iplikleri kullanabilirsiniz. Muhtemelen, boyut ayarlı bir sayfada bazı img etiketleri vardır. – taro
Açık uri kullanarak boyutu almak için resmin ilk n kilobaytını okumaya ne dersiniz? –
Burada ilgili soru için http://stackoverflow.com/questions/1120350/how-to-download-via-http-only-piece-of-big-file-with-ruby – taro