2

编辑:

有没有办法让像素化元素混在一起?如果我有一个网格,可以说 100x100 - 那么像素会变得非常小,您可以看到图像。所以我想把像素化的部分弄乱。任何的想法?


我正在尝试使用 PHP 将图像划分为相等的网格,以便我可以将其像素化为均匀的部分。

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

作为我的出发点,我正在使用这个问题的答案PHP image pixelate?

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

$gridElements = 9;
$pixelate_x = $width/sqrt($gridElements);
$pixelate_y = $height/sqrt($gridElements);

我注意到,当使用平方根为整数的数字时 - 我得到了一个更均匀的网格。但它并不完美。

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

图 1

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

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

在此处输入图像描述

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

在此处输入图像描述

所以..它工作得不是很好,我确实希望网格是均匀的。有谁知道如何做到这一点?

4

1 回答 1

1

这是因为 1160 并不能很好地划分自己,即使是 3(是的,使用 3x3 网格时也不相等)。你最大的敌人是整数

于 2013-03-03T15:17:15.637 回答