PHP的
<style>
body{}
a{display: inline-block;width:1px;height:1px;}
</style>
<?PHP
function createImFromFile($path){
if(!is_file($path)){
throw new Exception("File: $path not found!");
}
$info = getimagesize($path);
switch ($info[2]){
case 1:
//gif
$tim = imagecreatefromgif($path);
$w = imagesx($tim);
$h = imagesy($tim);
$im = imagecreatetruecolor( $w,$h );
imagecopy($im,$tim,0,0,0,0,$w,$h);
imagedestroy($tim);
break;
case 2:
//jpg
$im = imagecreatefromjpeg($path);
break;
case 3:
//png
$im = imagecreatefrompng($path);
break;
default:
throw new Exception("Not support file type.File:$path");
}
return $im;
}
$im = createImFromFile("d:\\aa.jpg");
$w = imagesx($im);
$h = imagesy($im);
$str = "<div>";
for($i = 0; $i < $h; $i++){
$str .= "<div>";
for($j = 0; $j <$w; $j++){
$rgb = str_pad(dechex(imagecolorat($im, $j, $i)), 6, "0", STR_PAD_LEFT);
$str .="<a style='background:#$rgb'></a>";
}
$str .= "</div>";
}
$str .= "</div>";
imagedestroy($im);
echo $str;
/*$rgb = ImageColorAt($im, 100, 100);
$r = ($rgb >> 16) & 0xFF;
$g = ($rgb >> 8) & 0xFF;
$b = $rgb & 0xFF;*/
?>
.Net 的:
protected string tmp = "";
protected void Page_Load(object sender , EventArgs e) {
Bitmap bm = new Bitmap("d:\\aa.jpg");
int w = bm.Width;
int h = bm.Height;
StringBuilder sb = new StringBuilder();
Color c;
sb.Append("<div>");
for( int i = 0 ; i < h ; i++ ) {
sb.Append("<div>");
for( int j = 0 ; j < w ; j++ ) {
c = bm.GetPixel(j,i);
sb.Append(string.Format("<a style='background:#{0}{1}{2}'></a>" , V(c.R) , V( c.G) , V(c.B)));
}
sb.Append("<div>");
}
sb.Append("</div>");
tmp = sb.ToString();
}
private string V( int v ) {
return string.Format("{0:X}" , v).PadLeft(2 , '0');
}
等我一步一步解開他的混淆後,發現:它只是一個笑話!
另外說明一下:
在PHP 裡沒有直接使用 createimagefromgif 是因為:
imagecolorat returns the color index (position in the palette) for
palette based image or the color value for true color images.
imagecreatefromjpeg creates true color images, always.
imagecreatefromgif creates always palette based images and
imagecreatefrompng creates either palette or true color images as PNG
supports both image types.