能写一个修改图像大小,但是不改变分辨率的python代码吗
时间: 2024-04-15 18:28:59 浏览: 78
当然可以!以下是一个示例代码,使用Python的PIL库来修改图像大小但不改变分辨率:
```python
from PIL import Image
def resize_image(input_image_path, output_image_path, new_size):
original_image = Image.open(input_image_path)
width, height = original_image.size
new_width, new_height = new_size
# 计算新的宽高比例
width_ratio = new_width / width
height_ratio = new_height / height
ratio = min(width_ratio, height_ratio)
# 根据比例调整宽高,并保持分辨率不变
resized_width = int(width * ratio)
resized_height = int(height * ratio)
resized_image = original_image.resize((resized_width, resized_height), Image.LANCZOS)
# 创建一个白色背景的新图像,并将调整大小后的图像粘贴在中间位置
new_image = Image.new("RGB", new_size, (255, 255, 255))
new_image.paste(resized_image, ((new_width - resized_width) // 2, (new_height - resized_height) // 2))
# 保存修改后的图像
new_image.save(output_image_path)
# 示例用法
input_path = "input.jpg" # 输入图像路径
output_path = "output.jpg" # 输出图像路径
new_size = (800, 600) # 新的图像大小
resize_image(input_path, output_path, new_size)
```
请确保安装了PIL库(可使用`pip install pillow`命令进行安装)并将输入图像路径(`input_image_path`)、输出图像路径(`output_image_path`)和新的图像大小(`new_size`)替换为自己的实际值。
这段代码会将输入图像调整为指定的大小,同时保持分辨率不变,并将调整后的图像保存到指定的输出路径。
阅读全文