【发布时间】:2016-11-25 20:19:22
【问题描述】:
首先,我有一个原始图像,它是一个真彩色图像。保存为JPEG格式:
此原始图片保存在:24 位 图像中。
然后,我可以在运行这个简单的脚本后将其转换为 灰度 图像:
<?php
$source_file = "1.JPG";
$im = ImageCreateFromJpeg($source_file);
$imgw = imagesx($im);
$imgh = imagesy($im);
for ($i=0; $i<$imgw; $i++)
{
for ($j=0; $j<$imgh; $j++)
{
// Get the RGB value for current pixel
$rgb = ImageColorAt($im, $i, $j);
// Extract each value for: R, G, B
$rr = ($rgb >> 16) & 0xFF;
$gg = ($rgb >> 8) & 0xFF;
$bb = $rgb & 0xFF;
// Get the value from the RGB value
$g = round(($rr + $gg + $bb) / 3);
// Gray-scale values have: R=G=B=G
$val = imagecolorallocate($im, $g, $g, $g);
// Set the gray value
imagesetpixel ($im, $i, $j, $val);
}
}
header('Content-type: image/jpeg');
imagejpeg($im);
?>
结果如下:
此灰度图片保存在:8 位 图像中。
现在,我想将其转换为真实 黑白图像:
此黑白图片保存在:1 位 图像中。
你能告诉我:如何使用 PHP 将真彩色图像转换为黑白图像?
【问题讨论】:
-
你读过这个问题吗? stackoverflow.com/q/31342505/3885509