引言在处理图像数据时,经常需要下载图片并将其调整到所需的大小。Python 提供了多种库来实现这一功能,如 requests 用于下载图片,PIL(Pillow)用于处理和调整图片大小。本文将详细介绍...
在处理图像数据时,经常需要下载图片并将其调整到所需的大小。Python 提供了多种库来实现这一功能,如 requests 用于下载图片,PIL(Pillow)用于处理和调整图片大小。本文将详细介绍如何使用 Python 下载图片以及如何控制图片的大小。
首先,我们需要使用 requests 库来下载图片。以下是一个简单的示例代码,展示了如何下载一张网络上的图片:
import requests
def download_image(url, save_path): response = requests.get(url) if response.status_code == 200: with open(save_path, 'wb') as f: f.write(response.content) print(f"图片已保存到 {save_path}") else: print("下载失败,状态码:", response.status_code)
# 示例使用
download_image("https://example.com/image.jpg", "downloaded_image.jpg")下载图片后,我们可以使用 Pillow 库来调整图片的大小。以下是一个示例代码,展示了如何将图片的大小调整为 800x600 像素:
from PIL import Image
def resize_image(image_path, new_size, save_path): with Image.open(image_path) as img: img = img.resize(new_size, Image.ANTIALIAS) img.save(save_path) print(f"图片已保存到 {save_path},大小为 {new_size}")
# 示例使用
resize_image("downloaded_image.jpg", (800, 600), "resized_image.jpg")除了固定大小,我们还可以根据图片原始大小动态调整其大小。以下是一个示例代码,展示了如何将图片调整为其原始大小的 50%:
def resize_image_percentage(image_path, percentage, save_path): with Image.open(image_path) as img: new_size = (int(img.width * percentage), int(img.height * percentage)) img = img.resize(new_size, Image.ANTIALIAS) img.save(save_path) print(f"图片已保存到 {save_path},大小为 {new_size}")
# 示例使用
resize_image_percentage("downloaded_image.jpg", 0.5, "resized_image_50_percent.jpg")在调整图片大小时,我们可能希望保持图片的宽高比。以下是一个示例代码,展示了如何保持图片比例调整大小:
def resize_image_keep_aspect_ratio(image_path, max_size, save_path): with Image.open(image_path) as img: img_ratio = img.width / img.height max_ratio = max_size[0] / max_size[1] if img_ratio > max_ratio: new_size = (max_size[0], int(max_size[0] / img_ratio)) else: new_size = (int(max_size[1] * img_ratio), max_size[1]) img = img.resize(new_size, Image.ANTIALIAS) img.save(save_path) print(f"图片已保存到 {save_path},大小为 {new_size}")
# 示例使用
resize_image_keep_aspect_ratio("downloaded_image.jpg", (800, 600), "resized_image_keep_aspect_ratio.jpg")在保存图片时,我们可以通过指定质量参数来调整图片的压缩程度。以下是一个示例代码,展示了如何以高质量保存图片:
def save_image_with_quality(image_path, save_path, quality=95): with Image.open(image_path) as img: img.save(save_path, "JPEG", quality=quality) print(f"图片已保存到 {save_path},质量为 {quality}")
# 示例使用
save_image_with_quality("downloaded_image.jpg", "high_quality_image.jpg")本文介绍了使用 Python 下载图片以及调整图片大小的技巧。通过使用 requests 和 Pillow 库,我们可以轻松地实现这些功能。希望本文能帮助您更好地处理图像数据。