当前位置: 首页 > 图文教程 > 网络编程 > PHP > PHP代码实例:图片转成HTML

PHP
正确理解PHP程序编译时的错误信息
PHP开发中关于文件操作的疑难问答
PHP.MVC的模板标签系统之标签行为调度
PHP安全配置之实现安全的两个重点
用PHP+java实现自动新闻滚动窗口
PHP编程技巧:看实例学正则表达式
PHP一些常用的正则表达式
PHPUnit袖珍指南之自动测试
PHPUnit袖珍指南之PHPUnit的目的
PHPUnit袖珍指南之安装PHPUnit
PHPUnit袖珍指南之命令行测试工具
PHP中使用crypt()实现用户身份验证
用PHP+MySQL搭建聊天室
如何编译PHP源代码
安全基础:PHP后门的隐藏技巧测试报告
PHP创建和使用session cookie变量
php的curl实现get和post
PHP自动适应范围的页码分页程序
Perl处理日期时间的技巧
php直接调用文本文件内容

PHP代码实例:图片转成HTML


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2010-01-30   浏览: 89 ::
收藏到网摘: n/a

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.

http://bugs.php.net/bug.php?id=40801