PHP将矩形(图像)划分为网格?

PHP将矩形(图像)划分为网格?,php,image,Php,Image,编辑: 有没有办法把像素化的元素混在一起?如果我有一个100×100的网格,那么像素会变得非常小,你可以看到类似这样的图像。所以我想把像素化的部分混在一起。有什么想法吗 我正在尝试使用PHP将图像分割成相等的网格,这样我就可以将其像素化为均匀的部分 这与某种游戏有关。有一个由某个用户上传的图像,我希望它被分成x个块(用户选择应该有多少块),然后每个块将被像素化。当其他用户完成某项任务时,会显示像素化块的一部分,直到所有像素化部分都消失,您只剩下原始图像。我真的不在乎网格元素是正方形还是矩形,我

编辑:

有没有办法把像素化的元素混在一起?如果我有一个100×100的网格,那么像素会变得非常小,你可以看到类似这样的图像。所以我想把像素化的部分混在一起。有什么想法吗


我正在尝试使用PHP将图像分割成相等的网格,这样我就可以将其像素化为均匀的部分

这与某种游戏有关。有一个由某个用户上传的图像,我希望它被分成x个块(用户选择应该有多少块),然后每个块将被像素化。当其他用户完成某项任务时,会显示像素化块的一部分,直到所有像素化部分都消失,您只剩下原始图像。我真的不在乎网格元素是正方形还是矩形,我只希望它们是均匀的

作为我的出发点,我用这个问题的答案

要确定x和y像素大小,我使用以下公式:

$gridElements = 9;
$pixelate_x = $width/sqrt($gridElements);
$pixelate_y = $height/sqrt($gridElements);
我注意到,当使用一个平方根是整数的数字时,我得到了一个更均匀的网格。。但这并不完美

尝试使用9块网格并使用1160x680图像时,我得到以下结果:

它可能看起来很均匀,但最后一行比前两行大

当我将其缩放到16时,差异非常明显

当尝试400个元素的网格(20x20)时,会出现第21行


所以。。它运行得不太好,我确实希望网格均匀。有人知道怎么做吗?

这是因为1160并不能很好地将自身除以3(是的,使用3x3网格时也不相等)。这里最大的敌人是整数

看起来这实际上是第20行,而不是第21行?您必须检查
图像高度/垂直块数
是否为
整数
,这对于4x4或20x20应该不是问题。。。你确定你的
图像\u高度
=680吗?是的,对不起,我正在数另一次尝试。。是的,第20行被剪切:/是的,图像高度是680,您可以复制图像URL并在新选项卡中打开它。我已经尝试使用宽度和高度的平方根等于整数,因此我的新图像大小是1156 x 676,但我仍然有相同的剪切问题。请注意:它首先调整图像大小,然后使用整数化的像素对其进行迭代。注释掉了一些行,在我看来,您甚至可以从中删除一大堆代码;)