php gd 分辨率,php gd pixelate太锐利

这是您需要的(我目前使用的脚本)。该脚本基于

http://www.talkphp.com/19670-post1.html的脚本:

function convertToPixel($im, $size) {

$size = (int)$size;

$sizeX = imagesx($im);

$sizeY = imagesy($im);

if($sizeX < 3 && $sizeX < 3) { // or you can choose any size you want

return;

}

for($i = 0;$i < $sizeX; $i += $size) {

for($j = 0;$j < $sizeY; $j += $size) {

$colors = Array('alpha' => 0, 'red' => 0, 'green' => 0, 'blue' => 0, 'total' => 0);

for($k = 0; $k < $size; ++$k) {

for($l = 0; $l < $size; ++$l) {

if($i + $k >= $sizeX || $j + $l >= $sizeY) {

continue;

}

$color = imagecolorat($im, $i + $k, $j + $l);

imagecolordeallocate($im, $color);

$colors['alpha'] += ($color >> 24) & 0xFF;

$colors['red'] += ($color >> 16) & 0xFF;

$colors['green'] += ($color >> 8) & 0xFF;

$colors['blue'] += $color & 0xFF;

++$colors['total'];

}

}

$color = imagecolorallocatealpha($im, $colors['red'] / $colors['total'], $colors['green'] / $colors['total'], $colors['blue'] / $colors['total'], $colors['alpha'] / $colors['total']);

imagefilledrectangle($im, $i, $j, ($i + $size - 1), ($j + $size - 1), $color);

}

}

}

header('Content-type: image/jpg');

$im = imagecreatefromjpeg($imgfile);

convertToPixel($im, 15);

imagejpeg($im, '', 100);

这将产生:

您还可以更改convertToPixel中传递的值来修改像素大小。)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值