python将不定长宽比的灰度图像调整到制定5922x3567的大小,可以用空白填充
时间: 2024-01-21 10:20:00 浏览: 69
图片大小调整工具,把图像调整到指定大小,不足的地方填充空白,或者自定义颜色
4星 · 用户满意度95%
可以使用Pillow库来实现这个功能。具体步骤如下:
1. 导入Pillow库:
```python
from PIL import Image
```
2. 打开原始灰度图像:
```python
im = Image.open("path/to/image.jpg").convert("L")
```
3. 计算调整后的图像尺寸:
```python
target_size = (5922, 3567)
source_size = im.size
source_ratio = source_size[0] / source_size[1]
target_ratio = target_size[0] / target_size[1]
if source_ratio > target_ratio:
# 原始图像比目标图像更宽,限制宽度
new_width = target_size[0]
new_height = int(new_width / source_ratio)
else:
# 原始图像比目标图像更窄,限制高度
new_height = target_size[1]
new_width = int(new_height * source_ratio)
```
4. 调整图像大小并填充:
```python
new_im = Image.new("L", target_size, color=255) # 创建一个空白的图像,颜色为白色
left = (target_size[0] - new_width) // 2 # 计算左边和上面的填充大小
top = (target_size[1] - new_height) // 2
right = left + new_width # 计算右边和下面的填充大小
bottom = top + new_height
new_im.paste(im.resize((new_width, new_height)), (left, top, right, bottom)) # 将原始图像缩放并粘贴到新的图像中
```
5. 保存调整后的图像:
```python
new_im.save("path/to/new_image.jpg")
```
完整代码如下:
```python
from PIL import Image
im = Image.open("path/to/image.jpg").convert("L")
target_size = (5922, 3567)
source_size = im.size
source_ratio = source_size[0] / source_size[1]
target_ratio = target_size[0] / target_size[1]
if source_ratio > target_ratio:
# 原始图像比目标图像更宽,限制宽度
new_width = target_size[0]
new_height = int(new_width / source_ratio)
else:
# 原始图像比目标图像更窄,限制高度
new_height = target_size[1]
new_width = int(new_height * source_ratio)
new_im = Image.new("L", target_size, color=255)
left = (target_size[0] - new_width) // 2
top = (target_size[1] - new_height) // 2
right = left + new_width
bottom = top + new_height
new_im.paste(im.resize((new_width, new_height)), (left, top, right, bottom))
new_im.save("path/to/new_image.jpg")
```
阅读全文