| [GD]生成bmp格式的图片(imagebmp) |
|
| |
|
$bmp_data .= "\0\1"; } $size_quad = strlen($rgb_quad); $size_data = strlen($bmp_data); } else { // 每行字节数必须为4的倍数,补齐。 $extra = ''; $padding = 4 - ($width * ($bit / 8)) % 4; if ($padding % 4 != 0) { $extra = str_repeat("\0", $padding); } // 位图数据 $bmp_data = ''; for ($j = $height - 1; $j >= 0; $j --) { for ($i = 0; $i < $width; $i ++) { $index = imagecolorat($im, $i, $j); $colors = imagecolorsforindex($im, $index); if ($bit == 16) { $bin = 0 << $bit; $bin |= ($colors['red'] >> 3) << 10; $bin |= ($colors['green'] >> 3) << 5; $bin |= $colors['blue'] >> 3; $bmp_data .= pack("v", $bin); } else { $bmp_data .= pack("c*", $colors['blue'], $colors['green'], $colors['red']); } // todo: 32bit; } $bmp_data .= $extra; } $size_quad = 0; $size_data = strlen($bmp_data); $colors_num = 0; } // 位图文件头 $file_header = "BM" . pack("V3", 54 + $size_quad + $size_data, 0, 54 + $size_quad); // 位图信息头 $info_header = pack("V3v2V*", 0x28, $width, $height, 1, $bit, $compression, $size_data, 0, 0, $colors_num, 0); // 写入文件 if ($filename != '') { $fp = fopen("test.bmp", "wb"); fwrite($fp, $file_header); fwrite($fp, $info_header); fwrite($fp, $rgb_quad); fwrite($fp, $bmp_data); fclose($fp); return 1; } // 浏览器输出 header("Content-Type: image/bmp"); echo $file_header . $info_header; echo $rgb_quad; echo $bmp_data; return 1; } 参考资料:BMP文件格式分析 (出处没有找到…)原创文章,转载请注明出处。 出处:http://www.ugia.cn/?p=96 Linux联盟收集整上一页 [1] [2]
 |
频道声明:本频道的文章除部分特别声明禁止转载的专稿外,可以自由转载.但请务必注明出出处和原始作者 文章版权归本频道与文章作者所有.对于被频道转载文章的个人和网站,我们表示深深的谢意。
| 原始作者:佚名 |
录入时间:2007-1-3 3:34:37 |
| 信息来源:不详 |
投稿信箱:itqoo@126.com |
|
|
 |
|
|
|
| 教程录入:itqoo 责任编辑:itqoo |
|
上一个教程: 用php或js获取图片大小,高宽尺寸
下一个教程: PHPUnit袖珍指南之自动测试 |
| 【字体:小 大】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口】 |