2016-04-26 5 views
0

imgur.comからPythonスクリプトを使用してたくさんの画像をダウンロードしています。私はすべてのリンクをhttp://imgur.com/{id}元のURLをhttp://i.imgur.com/{id}.gifに置き換えてダウンロードし、すべての画像を拡張子なしで保存します。 (私はImgurのAPIがあることを知っていますが、この種の仕事には制限があるので使用できません)imghdr/python - いくつかの画像のタイプを検出できません(画像の拡張子)

イメージをダウンロードした後、imghdrモジュールを使ってイメージの元の拡張子を確認します。

>>> import imghdr 
>>> imghdr.what('/images/GrEdc') 
'gif' 

問題は、これは80%の成功率で動作することで、残りの20%は、すべての'None'として識別し、それらのいくつかをチェックしている私は、彼らが最も可能性の高いすべての.jpgイメージであることに気づきました。

なぜimghdrがフォーマットを検出できないのですか?拡張子を付けずにUbuntuのデフォルト画像ビューアで画像を開くことができるので、それらが壊れているとは思わない。

答えて

0

これはlibの既知の問題ですが、有効であるとは限りません。JPEGイメージ。

すべてのJPEG画像をよりよく検出するlibの修正を使用できます。特に、すべてのファイルが画像であることがわかっている場合は特にそうです。

https://bugs.python.org/issue28591

あなたには、いくつかの画像を検出することができないlibにしても、これは固定で、あなたはフォーマットのより大きな数をサポートpillowと試みるが、あまり軽量であり、外部依存関係がPythonのビルドに含まれていない場合-in libs。

関連する問題