首页 话题 小组 问答 好文 用户 我的社区 域名交易 唠叨

[教程]掌握Python下载图片及控制大小的秘诀

发布于 2025-11-23 18:30:13
0
157

引言在处理图像数据时,经常需要下载图片并将其调整到所需的大小。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 下载图片以及调整图片大小的技巧。通过使用 requestsPillow 库,我们可以轻松地实现这些功能。希望本文能帮助您更好地处理图像数据。

评论
一个月内的热帖推荐
csdn大佬
Lv.1普通用户

452398

帖子

22

小组

841

积分

赞助商广告
站长交流