Comments 14
Так приятно слышать, что в мире стало еще на одного человека больше, кто знает, что размеры изображения хранятся в начале файла. А еще битрейт mp3 файла бывает там же хранится. В общем, в начале файла много всего интересного обычно, иначе эти форматы не были бы binary safe.
буквально на днях делал тоже самое
чтобы не изобретать велосепид можно использовать PIL
подсмотрел здесь github.com/reddit/reddit/blob/master/r2/r2/lib/media.py
чтобы не изобретать велосепид можно использовать PIL
def _fetch_image(cls, url, user_agent):
"""Return the image by URL downloading as little as possible."""
request = urllib2.Request(url)
request.add_header('User-Agent', user_agent)
parser = ImageFile.Parser()
response = None
try:
response = urllib2.urlopen(request)
while True:
chunk = response.read(1024)
if not chunk:
break
parser.feed(chunk)
if parser.image:
return parser.image
except:
return None
finally:
if response:
response.close()
подсмотрел здесь github.com/reddit/reddit/blob/master/r2/r2/lib/media.py
запрос HEAD видать придумали трусы…
Сударь, для такой мелочи использовать внешние библиотеки — неуважение к тем, с кем Вы хотите её поделиться. У вас есть два варианта — убрать Reseek или сделать egg.
хмммм, а еще есть такая хорошая командочка «file», про которую написано «The magic tests are used to check for files with data in particular fixed formats.»
Причем знает не только 3 вида картинок, а намного больше всего про самые разые форматы файлов.
Причем знает не только 3 вида картинок, а намного больше всего про самые разые форматы файлов.
file
не всегда может узнать размеры изображения:curl -s -r 0-24 http://img2-1.timeinc.net/ew/dynamic/imgs/110315/Charade_240.jpg | file -
Вот еще вариант, детектит размер и не только (не чтоб чего-то доказать, а вдруг кому пригодится).
Правда оно потребовало чуть больший кусок от файла
Правда оно потребовало чуть больший кусок от файла
curl -s -r 0-2000 http://img2-1.timeinc.net/ew/dynamic/imgs/110315/Charade_240.jpg | identify -
-=>/tmp/magick-OZeNcjJh JPEG 240x320 240x320+0+0 8-bit DirectClass 2KB 0.000u 0:00.000
А на JS как такое сделать, не подскажете?
P.S. сразу предупреждаю, что JS я юзаю только в сочетании с Qt C++, и там V8, по идее должно быть доступно все то же, что и в браузере.
P.S. сразу предупреждаю, что JS я юзаю только в сочетании с Qt C++, и там V8, по идее должно быть доступно все то же, что и в браузере.
Sign up to leave a comment.
Получаем тип и размеры изображения без скачивания его целиком, используя Python