You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修改使用PIL绘制的点网格中点的大小

问题解答

现有代码问题修正

你提供的代码存在两处可修正的问题:

  • 第4行draw = ImageDraw.Draw(i)中变量i未定义,应该替换为你前面创建的图像对象img
  • 内层循环的范围range(step,h-step,step)会导致y轴方向最底部少一行点,如果你是特意要给图像四周留空白可以保留该设置,要铺满全图则改为range(step, h, step)即可

修正后你的代码可以正常生成1像素大小的黄色点网格。

调整点大小的实现方法

PIL自带的point()方法仅支持绘制1像素的点,无法直接调整尺寸,要生成更大的点可以使用以下两种方案:

方案1:绘制圆点(推荐)

使用ellipse()方法绘制圆形点,通过自定义半径参数即可灵活调整点的大小,完整参考代码如下:

from PIL import Image, ImageDraw
img = Image.new("RGB", (1000,1000), (0, 0, 0))
 
draw = ImageDraw.Draw(img)
w, h = img.size
step = 100
point_radius = 3  # 按需调整点的半径,数值越大点越大

for x in range(step, w, step):
    for y in range(step, h, step):
        # 计算圆点外接矩形的上下左右坐标
        draw.ellipse(
            (x - point_radius, y - point_radius, x + point_radius, y + point_radius),
            fill="yellow"
        )
img.show()

方案2:绘制方形点

如果需要方形点样式,将上述代码中的ellipse()方法替换为rectangle()即可,参数逻辑完全一致。


内容的提问来源于stack exchange,提问作者project.py

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 10:36:03