Как стать автором
Обновить

Комментарии 14

Так приятно слышать, что в мире стало еще на одного человека больше, кто знает, что размеры изображения хранятся в начале файла. А еще битрейт mp3 файла бывает там же хранится. В общем, в начале файла много всего интересного обычно, иначе эти форматы не были бы binary safe.
В общем, в начале файла много всего интересного обычно, иначе эти форматы не были бы binary safe.
Что-то не вижу логики.
буквально на днях делал тоже самое
чтобы не изобретать велосепид можно использовать 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 вида картинок, а намного больше всего про самые разые форматы файлов.
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
Опять не универсальное решение:

curl -s -r 0-2000 http://digitaldeconstruction.com/wp-content/uploads/2013/02/mma.jpg | identify -
А на JS как такое сделать, не подскажете?
P.S. сразу предупреждаю, что JS я юзаю только в сочетании с Qt C++, и там V8, по идее должно быть доступно все то же, что и в браузере.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Изменить настройки темы

Истории