gpt4 book ai didi

image - 在图像上使用特定大小的单元格绘制网格

转载 作者:行者123 更新时间:2023-12-05 00:48:50 27 4
gpt4 key购买 nike

如何在图像上绘制一个 1px 黑色边框不填充的网格?

网格的每个部分应为 480x360 像素。

例如,给定这个 1440x1080 像素的纯白色输入:

enter image description here

它应该有一个 3x3 的网格(因为它可以容纳 9 个 480x360px 的矩形)以生成如下所示的输出:

enter image description here

这并不像我希望的命令那样准确(我只是用肉眼绘制矩形),但我希望它能说明我所追求的。

最佳答案

这是一个命令,它将读取输入图像,创建一个带有黑色边框的 480x360 透明单元格,创建一个输入图像大小的单元格网格,并将该网格合成到输入...

infile="MyPic.png"

convert "$infile" -size 480x360 -set option:distort:viewport "%[w]x%[h]" \
\( xc:none -shave 1x1 -compose copy -bordercolor black -border 1x1 \) \
-virtual-pixel tile -distort SRT 0 -compose over -composite output.png

这将使网格线的粗细为 2 个像素。如果线条必须是 1 像素粗,则可以使用这样的命令完成相同的操作...

convert "$infile" -size 480x360 -set option:distort:viewport "%[w]x%[h]" \
\( xc:none -chop 1x1 -background black -splice 1x1 \) \
-virtual-pixel tile -distort SRT 0 -compose over -composite \
-bordercolor black -shave 1x1 -compose copy -border 1x1 output.png

编辑添加:如果目标是将网格划分为特定数量的单元格而不是指定尺寸的单元格,那么这样的命令应该可以工作......

convert "$infile" \( +clone -channel A -evaluate set 0 +channel \
-crop 3x4@ -chop 1x1 -background black -splice 1x1 \) -background none \
-flatten -shave 1x1 -bordercolor black -border 1x1 output.png

创建输入图像的克隆并使其透明,使用“-crop 3x4@”将其裁剪为 3x4 单元格的网格,在单元格的顶部和左侧边缘放置黑色边框,然后重新组合它们通过将它们展平到输入图像上,将它们放入网格中。它通过在右侧和底部边缘添加边框来完成,同时保留输入图像的原始尺寸。

显然使用这种方法,如果输入图像不能被单元格的数量平均分割,则单元格的尺寸可能并不完全相同。

再次编辑:如果您实际上不需要网格作为叠加层,您可以直接将图像裁剪成图 block ,在图 block 周围放置黑线,然后重新组合它们以创建所需的输出图像。这可以通过像这样的简单命令来制作 480x360 大小的单元格...

convert "$infile" -background black -bordercolor black \
-crop 480x360 -chop 1x1 -splice 1x1 -flatten -shave 1x1 -border 1x1 output.png

或者也可以像这样使用“-crop 3x3@”来制作一个 3 行 3 列的网格,让 ImageMagick 尽可能地计算尺寸...

convert "$infile" -background black -bordercolor black \
-crop 3x3@ -chop 1x1 -splice 1x1 -flatten -shave 1x1 -border 1x1 output.png

同样,如果图像大小不能被单元格的数量整除,则某些单元格的大小会有一个像素的差异。

关于image - 在图像上使用特定大小的单元格绘制网格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48632185/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com