编辑:
有没有办法在像素化元素周围混杂?如果我有一个让我们说100x100的网格 - 那么像素变得非常小,你可以看到图像的类型。所以我想混淆像素化的部分。有什么想法吗?
我正在尝试使用PHP将图像划分为相等的网格,以便我可以将其像素化为偶数部分。
它与某种游戏有关。有些用户上传了一张图片,我希望它被分成x个块(用户选择应该有多少个块),然后每个块都会被像素化。当其他用户完成一些任务时 - 显示像素化块的一部分,直到所有像素化部分都消失并且你留下了原始图像。我真的不在乎网格元素是正方形还是矩形 - 我只是希望它们是偶数。
作为我的出发点,我正在使用这个问题的答案PHP image pixelate?
要确定x和y像素大小,我使用以下公式:
$gridElements = 9;
$pixelate_x = $width/sqrt($gridElements);
$pixelate_y = $height/sqrt($gridElements);
我注意到当使用一个数字时,其平方根是一个整数 - 我得到一个更均匀的网格..但它并不完美。
当尝试使用9块网格并使用1160x680图像时,我得到以下内容:
它可能看起来更均匀,但最后一行比前两行更大。
当我将它缩放到16时,差异非常明显
当尝试400个元素网格(20x20)时,第21行出现。
所以..它工作得不好,我确实希望网格是均匀的。有没有人知道如何做到这一点?
答案 0 :(得分:1)
这是因为1160并没有真正地划分得很好,即使是3(是的,当使用3x3网格时它也不相同)。这里你最大的敌人是整数
更新:这里的馅饼: http://pastie.org/private/skmjhgitfpljgohuehymea
可以告诉你如何做到这一点。忽略下面评论中给出的那个。这段代码更具可读性