Не удаётся из url получить фото

Рейтинг: 0Ответов: 1Опубликовано: 10.05.2023

не удается из ссылки получить фотографию, она почему-то не преобразовывается и постоянно выдает ошибку. Из-за этого не получается распознать текст с фотографии, которую подаю, уже не знаю, что делать, помогите, пожалуйста, разобраться.

import os 
import io 
import requests 
from PIL import Image, UnidentifiedImageError 
import pytesseract 
import telebot 
import csv 
import re 
import time 
from PIL import ImageFile 
     photo_url = message.photo[-1].file_id 
     photo_info = bot.get_file(photo_url) 
     time.sleep(1) 
photo_url = f'https://api.telegram.org/file/bot{6084234069}/{photo_info.file_path}'   
    try: 
        # Скачиваем фотографию 
       ImageFile.LOAD_TRUNCATED_IMAGES = True 
       response = requests.get(photo_url) 
       a = io.BytesIO(response.content) 
       img = Image.open(a) 
    except (UnidentifiedImageError, OSError) as e: 
        print(f"Ошибка загрузки изображения: {e}") 
        
        return

Ответы

▲ 1Принят

Самый короткий и верный способ - просто конвертировать.

import io
import requests 
from PIL import Image, UnidentifiedImageError
from PIL import ImageFile 

photo_url = f'https://www.google.com/images/branding/googlelogo/2x/googlelogo_light_color_92x30dp.png'  
try: 
    # Скачиваем фотографию 
    ImageFile.LOAD_TRUNCATED_IMAGES = True 
    response = requests.get(photo_url) 
    a = io.BytesIO(response.content) 
    img = Image.open(a)

    img.save('img.png') # сохраняем в формате png
    
    rgb_im = img.convert('RGB') # конвертируем
    rgb_im.save('colors.jpg') # сохраняем результат в формате jpg

except (UnidentifiedImageError, OSError) as e: 
    print(f"Ошибка загрузки изображения: {e}")