Giới thiệu
Tôi nghĩ rằng bạn sẽ nhận được ImageMagick cài đặt bởi vì những gì bạn muốn là một vignette
tác đơn giản, bạn có thể dễ dàng để có ImageMagic (convert input.jpg -background black -vignette 70x80 output.png
) mà không phải lặp lại từng pixel có thể rất chậm khi xử lý hình ảnh lớn
gốc Hình ảnh
$file = __DIR__ . "/golf.jpg";

Hiệu lực thi hành 1
$image = new imagick($file);
$image->vignetteImage(20, 20, 40, - 20);
header("Content-Type: image/png");
echo $image;

Effect 2
$image = new imagick($file);
$image->vignetteImage(100, 100, 200, 200);
header("Content-Type: image/png");
echo $image;

mờ nét ảnh với GD
Vâng, nếu bạn buộc phải sử dụng GB ... Sử dụng có thể sử dụng cool vignette script
function vignette($im) {
$width = imagesx($im);
$height = imagesy($im);
$effect = function ($x, $y, &$rgb) use($width, $height) {
$sharp = 0.4; // 0 - 10 small is sharpnes,
$level = 0.7; // 0 - 1 small is brighter
$l = sin(M_PI/$width * $x) * sin(M_PI/$height * $y);
$l = pow($l, $sharp);
$l = 1 - $level * (1 - $l);
$rgb['red'] *= $l;
$rgb['green'] *= $l;
$rgb['blue'] *= $l;
};
for($x = 0; $x < imagesx($im); ++ $x) {
for($y = 0; $y < imagesy($im); ++ $y) {
$index = imagecolorat($im, $x, $y);
$rgb = imagecolorsforindex($im, $index);
$effect($x, $y, $rgb);
$color = imagecolorallocate($im, $rgb['red'], $rgb['green'], $rgb['blue']);
imagesetpixel($im, $x, $y, $color);
}
}
return (true);
}
nhanh hơn GD tiếp cận họa tiết này
Một tốt hơn tiếp cận được sử dụng trong GD Filter testing sẽ ... để tạo ra một mặt nạ và hơn nằm
$overlay = 'vignette_white.png';
$png = imagecreatefrompng($overlay);
imagecopyresampled($filter, $png, 0, 0, 0, 0, $width, $height, $width, $height);
Những bất lợi duy nhất là hình ảnh phải có cùng kích thước với mặt nạ để hiệu ứng trông đẹp hơn
Kết luận
Nếu đây là những gì bạn có nghĩa là bởi radial transparent gradient
sau đó tôi khuyên bạn để có được ImageMagic
nếu không ít nhất là người phụ nữ hình ảnh dễ thương.
http://stackoverflow.com/questions/6615602/radial-gradients-with-opacity-in-php?rq=1 # answer-6615727 –
Sử dụng CSS: http://stackoverflow.com/a/4527735/738201 – Chad
Kịch bản trường hợp tồi tệ hơn, bạn có thể vẽ đường viền vòng tròn PNG bằng GD nguyên thủy, nhưng thay vì áp dụng thay đổi màu, hãy áp dụng thay đổi độ mờ. Sau đó, phủ lớp PNG ở phía trên hình ảnh hiện tại của bạn. Tôi không có bất kỳ mã nào cho điều đó, nhưng nó có thể cung cấp cho bạn một số ý tưởng mới về cụm từ tìm kiếm. – halfer