2016-06-20 5 views
-2

Est-il possible de vérifier qu'une image que j'ai téléchargée est lisible, si une visionneuse d'image va me dire qu'elle ne peut pas l'ouvrir pour une raison quelconque.Comment vérifier si un fichier JPEG est lisible

Exemple:

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

je télécharger ma photo avec openURI puis sortie dans un fichier. Y at-il une fonction/gemme qui permettrait de faire cela?

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 

Je télécharge des images JPEG uniquement.

+0

non, je voudrais savoir comment le faire dans Ruby –

+0

Je le ferai, merci –

+0

@ Mo H. a changé la question (merci pour le conseil) –

Répondre

2

La seule façon de savoir si une image JPEG (vraie avec la plupart des formats d'image compressés) est de la décompresser. Vous pouvez effectuer des vérifications d'intégrité sur la structure du flux qui montrera certains flux qui ne peuvent pas s'ouvrir. Cependant, les erreurs dans les données compressées ne peuvent être trouvées qu'en les développant. Il n'y a pas de vérification CRC en JPEG comme il y a en PNG.

+0

Tout indice sur la façon de développer, puis vérifier avec rubis natif et/ou gemmes? –

+0

Non. Vous devriez trouver un décodé qui fonctionne avec eux. – user3344003