共计 1292 个字符,预计需要花费 4 分钟才能阅读完成。
有时候想找一个指定占用磁盘大小的图片真的很难,所以也许用 python 生成是最合适的。但是过程中又要装 Pillow 这些库,并且还可能报错,所以想着还是做个 docker 镜像算了。
# 使用默认参数,生成大小为1M,长宽比为16/9的图片
docker run --rm -v $(pwd):/data hausen1012/img-generate
# 根据自己需要修改参数
docker run --rm \
-e SIZE=1 \
-e LENGTH=16 \
-e WIDTH=9 \
-v $(pwd):/data \
hausen1012/img-generate
还是贴一下代码:
import os
import random
import string
from PIL import Image
import numpy as np
# 从环境变量获取图片大小(以字节为单位)
file_size = int(os.environ.get('SIZE', 1)) * 1024 * 1024 # 默认大小为1MB
# 从环境变量获取长宽比
length = int(os.environ.get('LENGTH', 16))
width = int(os.environ.get('WIDTH', 9))
# 计算所需的图片宽度和高度
aspect_ratio = length / width
width_pixels = int(np.sqrt(file_size * aspect_ratio / 3))
height_pixels = int(width_pixels / aspect_ratio)
# 创建随机像素数组
data = np.random.randint(0, 256, (height_pixels, width_pixels, 3), dtype=np.uint8)
# 创建PIL图片对象
img = Image.fromarray(data, 'RGB')
# 设置保存目录
output_directory = "/data"
# 生成随机文件名
random_filename = ''.join(random.choices(string.ascii_letters + string.digits, k=10))
output_path = os.path.join(output_directory, f"{random_filename}.png")
# 检查并创建保存目录
os.makedirs(output_directory, exist_ok=True)
# 保存图片到 "/data" 目录下
img.save(output_path)
file_size_mb = file_size / (1024 * 1024)
print(f"图片名称: {random_filename}, 大小: {file_size_mb:.2f}MB, 长宽比: {length}/{width}")
dockerfile 如下:
FROM python:3.9-alpine
RUN pip3 install --upgrade pip && \
pip3 install --upgrade Pillow && \
pip3 install --upgrade numpy
COPY run.py /
CMD ["python3", "/run.py"]
提醒:本文发布于360天前,文中所关联的信息可能已发生改变,请知悉!
AD:【腾讯云服务器大降价】2核4G 222元/3年 1核2G 38元/年
正文完