[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}")