gpt4 book ai didi

PHP图像像素化?

转载 作者:可可西里 更新时间:2023-11-01 13:07:29 27 4
gpt4 key购买 nike

我需要用 php 实现这个效果。我知道 PHP 图像过滤器中有 IMG_FILTER_PIXELATE。但我需要它更光滑和浮雕?就像这张图片:

image

这种效果会使用户上传的任何图片变得像素化,图片的边缘变成红色(我知道 IMG_FILTER_EDGEDETECT 但我不知道如何使用它来改变边缘颜色)。

我不知道该怎么做。

最佳答案

由于最后的答案是理论性的而且似乎还不够,我创建了一个实际的例子:
注意:这与“理想”和完美的像素化效果功能相去甚远,但它确实起作用了。随意根据自己的需要对其进行编辑。

<?php
/* Function to make pixelated images
* Supported input: .png .jpg .jpeg .gif
*
*
* Created on 24.01.2011 by Henrik Peinar
*/


/*
* image - the location of the image to pixelate
* pixelate_x - the size of "pixelate" effect on X axis (default 10)
* pixelate_y - the size of "pixelate" effect on Y axis (default 10)
* output - the name of the output file (extension will be added)
*/
function pixelate($image, $output, $pixelate_x = 20, $pixelate_y = 20)
{
// check if the input file exists
if(!file_exists($image))
echo 'File "'. $image .'" not found';

// get the input file extension and create a GD resource from it
$ext = pathinfo($image, PATHINFO_EXTENSION);
if($ext == "jpg" || $ext == "jpeg")
$img = imagecreatefromjpeg($image);
elseif($ext == "png")
$img = imagecreatefrompng($image);
elseif($ext == "gif")
$img = imagecreatefromgif($image);
else
echo 'Unsupported file extension';

// now we have the image loaded up and ready for the effect to be applied
// get the image size
$size = getimagesize($image);
$height = $size[1];
$width = $size[0];

// start from the top-left pixel and keep looping until we have the desired effect
for($y = 0;$y < $height;$y += $pixelate_y+1)
{

for($x = 0;$x < $width;$x += $pixelate_x+1)
{
// get the color for current pixel
$rgb = imagecolorsforindex($img, imagecolorat($img, $x, $y));

// get the closest color from palette
$color = imagecolorclosest($img, $rgb['red'], $rgb['green'], $rgb['blue']);
imagefilledrectangle($img, $x, $y, $x+$pixelate_x, $y+$pixelate_y, $color);

}
}

// save the image
$output_name = $output .'_'. time() .'.jpg';

imagejpeg($img, $output_name);
imagedestroy($img);
}


pixelate("test.jpg", "testing");


?>

这是在图像上创建像素化效果的示例函数。以下是使用此函数的示例结果:
原文:

像素化 5px:

像素化 10 像素:

像素化 20 像素:

关于PHP图像像素化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8936601/

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