|
Заметки
Конвертации изображения в grayscale с помощью PHP и библиотеки GD
<?php
// Исходный файл .jpg
$file = 'image.jpg';
header('Content-type: image/jpeg');
list($width, $height) = getimagesize($file);
$source = imagecreatefromjpeg($file);
$bwimage= imagecreate($width, $height);
for ($c=0;$c<256;$c++)
{
$palette[$c] = imagecolorallocate($bwimage,$c,$c,$c);
}
function yiq($r,$g,$b)
{
return (($r*0.299)+($g*0.587)+($b*0.114));
}
// Пиксел за пикселом обходим исходное изображение
for ($y=0;$y<$height;$y++)
{
for ($x=0;$x<$width;$x++)
{
$rgb = imagecolorat($source,$x,$y);
$r = ($rgb >> 16) & 0xFF;
$g = ($rgb >> 8) & 0xFF;
$b = $rgb & 0xFF;
$gs = yiq($r,$g,$b);
imagesetpixel($bwimage,$x,$y,$palette[$gs]);
}
}
// выводим черно-белое изображение
imagejpeg($bwimage);
?>
|
|