<style> body{margin: 0; padding: 0} <</style> <?php $imgPath='1.png'; $im = imagecreatefrompng($imgPath); imagepng($im, '1.png'); $rgbArray = array(); $res = $im; $size = getimagesize($imgPath); $wid = $size['0']; $hid = $size['1']; for ($i = 0; $i < $hid; ++ $i) { for ($j = 0; $j < $wid; ++ $j) { $rgb = imagecolorat($res, $j, $i); $rgbArray[$i][$j] = imagecolorsforindex($res, $rgb); } } //echo '<pre>'; for ($i = 0; $i < $hid; $i ++) { for ($j = 0; $j < $wid; $j ++) { //var_dump($rgbArray[$i][$j]['red']); //var_dump($rgbArray[$i][$j]['green']); //var_dump($rgbArray[$i][$j]['blue']); $red=$rgbArray[$i][$j]['red']; $green=$rgbArray[$i][$j]['green']; $blue=$rgbArray[$i][$j]['blue']; $red=$red<0?0:$red; $green=$green<0?0:$green; $blue=$blue<0?0:$blue; echo '<span style="display:block;float:left;width:1px;height:1px;color:'.RGBToHex("rgb($red,$green,$blue)").' ">.</span>'; // if ($rgbArray[$i][$j]['red'] > 220) { // echo '<span style="color: ">□</span>'; // } else { // echo '<span>■</span>'; // } } echo "<span style='clear:both;display: block'></span>"; } /** * RGB转 十六进制 * @param $rgb RGB颜色的字符串 如:rgb(255,255,255); * @return string 十六进制颜色值 如:#FFFFFF */ function RGBToHex($rgb){ $regexp = "/^rgb\(([0-9]{0,3})\,\s*([0-9]{0,3})\,\s*([0-9]{0,3})\)/"; $re = preg_match($regexp, $rgb, $match); $re = array_shift($match); $hexColor = "#"; $hex = array('0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'); for ($i = 0; $i < 3; $i++) { $r = null; $c = $match[$i]; $hexAr = array(); while ($c >= 16) { $r = $c % 16; $c = ($c / 16) >> 0; array_push($hexAr, $hex[$r]); } array_push($hexAr, $hex[$c]); $ret = array_reverse($hexAr); $item = implode('', $ret); $item = str_pad($item, 2, '0', STR_PAD_LEFT); $hexColor .= $item; } return $hexColor; } /** * 十六进制 转 RGB */ function hex2rgb($hexColor) { $color = str_replace('#', '', $hexColor); if (strlen($color) > 3) { $rgb = array( 'r' => hexdec(substr($color, 0, 2)), 'g' => hexdec(substr($color, 2, 2)), 'b' => hexdec(substr($color, 4, 2)) ); } else { $color = $hexColor; $r = substr($color, 0, 1) . substr($color, 0, 1); $g = substr($color, 1, 1) . substr($color, 1, 1); $b = substr($color, 2, 1) . substr($color, 2, 1); $rgb = array( 'r' => hexdec($r), 'g' => hexdec($g), 'b' => hexdec($b) ); } return $rgb; }
一个好玩的东西 php+html做的
最新推荐文章于 2026-03-28 02:07:41 发布
这篇博客使用PHP处理PNG图像,通过imagecreatefrompng获取图像并遍历像素,获取每个像素的RGB值,并将RGB值转换为十六进制颜色代码。内容涉及到图像处理和颜色转换函数,包括RGBToHex和hex2rgb。

6616

被折叠的 条评论
为什么被折叠?



