所以我希望能够将图像弄乱以扭曲原始图像。我的意思是这个。加载图像,遍历图像并获取 32x32 块并将每个单独的块存储在数组中。然后将它们重新组合成一张新图片,其中的块以随机顺序排列。
这是我目前必须从原始图像中获取和存储块然后创建重新组装图像的代码(注意这还没有随机化部分)。但由于某种原因,它不能正确输出。
<?php
$name = "pic.jpg";
$src = imagecreatefromjpeg($name);
list($width, $height, $type, $attr) = getimagesize($name);
$x_size = floor($width/32);
$y_size = floor($height/32);
$mixed = array();
$new_image = imagecreatetruecolor(32,32);
$x = 0;
$y = 0;
for($y = 0; $y < $height; $y+= 32) {
for($x = 0; $x < $width; $x+=32) {
imagecopy($new_image, $src, 0, 0, $x, $y, 32, 32);
array_push($mixed, $new_image);
}
}
$final_image = imagecreatetruecolor($width, $height);
$i = 0;
$x1 = 0;
$y1 = 0;
for($i = 0; $i < sizeof($mixed); $i++) {
$x1++;
if($x1 >= $x_size) {
$x1 = 0;
$y1++;
}
imagecopymerge($final_image, $mixed[$i], $x1, $y1, 0,0,32,32,100);
}
header('Content-Type: image/jpeg');
imagejpeg($final_image);
?>
原图:
输出:
如果您能提供帮助,将不胜感激。
谢谢。