看论坛上居然有人出卖该功能。。。原本这就是一件很简单的事。。
先看效果,美女噢!
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');
}
早上也有研究一下此贴里的JS写法:
等我一步一步解开他的混淆后,发现:它只是一个笑话!
另外说明一下:
在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.
| < Prev | Next > |
|---|
Last Updated ( Monday, 11 January 2010 23:52 )



