python: изображение повреждено при загрузке через urllib [duplicate]

Есть ли способ объединить (добавить) два числа под HTTPS?

blockquote>

No. Facebook рассматривает их как два разных объекта Open Graph.

Но вы можете вернуть похожие старые URL-адреса HTTP, следуя инструкциям, изложенным в . Часто задаваемые вопросы о социальных плагинах: как переместить страницу на страницу другой URL?

4
задан iTayb 1 February 2013 в 13:03
поделиться

2 ответа

Если вы можете положиться на расширение файла, вы можете использовать функцию mimetypes.guess_type . Обратите внимание, что вы можете получать разные результаты на разных платформах, но я бы все же назвал это кросс-платформенным.

8
ответ дан pafcu 21 August 2018 в 05:19
поделиться
  • 1
    Как вы сказали, это полезно, если вы можете положиться на расширение файла. В последнее время я использовал несколько веб-сервисов, которые отправляют вам необработанные данные изображения без имени файла, поэтому в таких случаях это было бы бесполезно. – iTayb 1 February 2013 в 13:21
  • 2
    Не знал о imghdr. Здорово. – iTayb 1 February 2013 в 14:51

Я проверил формат популярных типов изображений в википедии и попытался сделать подпись:

def guess_image_mime_type(f):
    '''
    Function guesses an image mime type.
    Supported filetypes are JPG, BMP, PNG.
    '''
    with open(f, 'rb') as f:
        data = f.read(11)
    if data[:4] == '\xff\xd8\xff\xe0' and data[6:] == 'JFIF\0':
        return 'image/jpeg'
    elif data[1:4] == "PNG":
        return 'image/png'
    elif data[:2] == "BM":
        return 'image/x-ms-bmp'
    else:
        return 'image/unknown-type'
2
ответ дан iTayb 21 August 2018 в 05:19
поделиться
  • 1
    Вместо того, чтобы вручную искать сигнатуры, вы могли бы повторно реализовать часть libmagic, проанализировав магический файл – pafcu 1 February 2013 в 13:36
Другие вопросы по тегам:

Похожие вопросы: