import base64 from io import BytesIO from PIL import Image, features import pillow_avif import requests def image_to_base(image_path): with open(image_path, 'rb') as image_file: image_base = base64.b64encode(image_file.read()).decode('utf-8') return image_base def pil_image_to_base64(image, format="JPEG"): """将图像转换为Base64的编码字符串""" buffered = BytesIO() image.save(buffered, format=format) return base64.b64encode(buffered.getvalue()).decode("utf-8") def load_image_from_url(image_url): """根据url加载图像""" headers = { "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/110.0.0.0 Safari/537.36", "Referer": "https://www.aliexpress.com/", "Accept-Language": "en-US,en;q=0.9", } response = requests.get(image_url, headers=headers) image = Image.open(BytesIO(response.content)) return image def load_image_from_cos(cos_url): """下载腾讯云COS的AVIF文件,并转换为可处理的图像数据""" try: response = requests.get(cos_url) response.raise_for_status() # 检查请求是否成功 img = Image.open(BytesIO(response.content)) return img except requests.exceptions.RequestException as e: raise requests.exceptions.RequestException(f"下载失败:{e}") except Exception as e: raise ValueError(f"解析AVIF失败:{e}") if __name__ == "__main__": url = 'https://img.alicdn.com/imgextra/i1/2212526294503/O1CN01P0qxZL1j8QU5cC4ed_!!2212526294503.jpg_q75.jpg_.webp' image = load_image_from_url(url) image.save('./product.png') # 保存为PNG # cos_url = "https://dev-govern-private-1251740668.cos.ap-guangzhou.myqcloud.com/private/20250723/b9c411c4c2514367afc4dd4ad199eb0d.webp?q-sign-algorithm=sha1&q-ak=AKIDIWXN4kqgpiMm0z4T5VgcKn4KSP8cZwnO&q-sign-time=1753320960%3B1753328160&q-key-time=1753320960%3B1753328160&q-header-list=host&q-url-param-list=&q-signature=f6223c1353c1c97c8e42355625dec94967c9c2f6" # image = load_image_from_cos(cos_url) # image.save('./product.png')