[Python] 使用PIL生成指定格式指定大小的测试图

使用PIL和numpy生成指定格式指定大小的图片,1GB以内已测试正常。

from PIL import Image
import numpy as np

# 指定目标图片最小体积
target_size_mb = 10
# 每个像素包含3个字节(RGB通道),计算需要的总像素数
bytes_per_pixel = 3  # RGB
total_pixels = (target_size_mb * 1024 * 1024) // bytes_per_pixel

# 假设生成接近正方形的图片,计算宽和高
width = int(total_pixels**0.5)
height = total_pixels // width

# 使用NumPy生成随机像素数据
random_data = np.random.randint(0, 256, (height, width, 3), dtype=np.uint8)
#random_data = np.tile(np.arange(256, dtype=np.uint8).reshape(1, -1, 1), (height, width // 256 + 1, 3))[:height, :width]

# 创建图片对象
image = Image.fromarray(random_data, 'RGB')

# 保存图片到文件
output_file = "large_image.png"
image.save(output_file, format="PNG") #BMP JPG GIF PDF

print(f"图片已生成,尺寸:{width}x{height},保存为:{output_file}")
posted @ 2024-12-17 11:08  夜歌乘年少  阅读(2)  评论(0编辑  收藏  举报