您的位置:首页 > 编程语言 > PHP开发

一个好玩的东西 php+html做的

2017-11-17 15:41 225 查看
<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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: