gpt4 book ai didi

php - 使用 PHP 将图像转换为数字?

转载 作者:可可西里 更新时间:2023-11-01 12:37:38 26 4
gpt4 key购买 nike

我正在尝试弄清楚如何将彩色图像 转换为数字。

例如,如果我有一个像 figure (b) 中所示的图像,我怎样才能将像 figure (a) 这样的输出输出到文本中文件?

enter image description here

最佳答案

我拿走了 here 里的东西Mehdi Karamosly 在他的回答中提到了这一点,并对其进行了一些修改,使其更简单一些,并制作了一个简单的 html 输出,您可以根据自己的喜好修改输出。如果您希望增加安全性,您可能需要添加更多数据检查以确保它是文件/真实图像。我已经在我的计算机上对其进行了检查,它可以正常工作,希望它可以通过一些修改来满足您的需求。

function graycolor($img){
list($width, $height) = getimagesize($img);
$mime = pathinfo($img, PATHINFO_EXTENSION);
switch($mime){#use appropriate function depending on image type
case 'jpg':
case 'jpeg':
$im = imagecreatefromjpeg($img);
break;
case 'png':
$im = imagecreatefrompng($img);
break;
case 'gif':
$im = imagecreatefromgif($img);
break;
default:
#invalid type
exit;
}
if(!is_color($img, $im)){#$img = string; $im = resource string
$ret = "";
for($i = 0; $i < $height; $i++){#loop height pixels
for($ii = 0; $ii < $width; $ii++){#loop width pixels
$color = imagecolorat($im, $ii, $i);
$color = imagecolorsforindex($im, $color);
$ret .= $color['red'] . " ";
}
$ret .= "\n";
}
return $ret;
}else{
#$ret = "";
#for($i = 0; $i < $height; $i++){#loop height pixels
#for($ii = 0; $ii < $width; $ii++){#loop width pixels
#$color = imagecolorat($im, $ii, $i);
#$color = imagecolorsforindex($im, $color);
#$ret .= $color['red'] . ", " . $color['green'] . ", " . $color['blue'] . " ";
#}
#$ret .= "\n";
#}
return "color image";
}

}
function is_color($img, $im){
$times = 10;#number of times to check image for color
$iscolor = false;
list($width, $height) = getimagesize($img);
for($i = 0 ; $i < $times && !$iscolor; $i++){
$color = imagecolorat($im, rand(0, $width), rand(0, $height));#get random cords
$color = imagecolorsforindex($im, $color);#get the random color's values
if($color['red'] !== $color['green'] || $color['green'] !== $color['blue']){
$iscolor = true;
break;
}
}
return $iscolor;
}

echo graycolor('color.jpg');#outputs color image
echo graycolor('gray.jpg');#outputs numbers

关于php - 使用 PHP 将图像转换为数字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17582551/

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