使用mondrianish 0.5.3传入自定义lines、rects调用generate_image报错如何解决
问题原因
你对generate_image函数的参数定义理解错误:
- 该函数的第二个参数要求传入图像尺寸元组(宽, 高),而非外部生成的
lines、rects网格数据 - 官方封装的
generate_image会自动在内部调用generate_grid生成网格,不支持直接传入自定义网格数据,你传入的(lines, rects)被函数当作尺寸参数进行数值计算,因此触发了列表和整数不能相除的类型错误。
解决方案
方案1:无需自定义网格,直接使用默认逻辑
直接给generate_image传入正确的图像尺寸参数即可:
from mondrianish import generate_image colors = ("#FFF8F0", "#FCAA67", "#7DB7C0", "#932b25", "#498B57") # 第二个参数为图像尺寸,示例为宽800px、高400px with open("output-1.png", "wb") as f: generate_image("png", (800, 400), 10, colors, f)
方案2:需要自定义网格(精细化控制线条、矩形)
直接调用库内部的渲染函数,传入你自己生成的网格数据即可:
from mondrianish import generate_grid, _render_png colors = ("#FFF8F0", "#FCAA67", "#7DB7C0", "#932b25", "#498B57") # 自定义生成网格 lines, rects = generate_grid((20, 10), density=0.3) # 配置图像参数 img_size = (800, 400) stroke_width = 10 with open("output-1.png", "wb") as f: _render_png(img_size, stroke_width, lines, rects, colors, f)
如果需要输出SVG格式,替换_render_png为_render_svg即可。
内容的提问来源于stack exchange,提问作者Peter Chung
相关产品推荐
相关产品推荐

