PHP
downloads | documentation | faq | getting help | mailing lists | reporting bugs | php.net sites | links | conferences | my php.net

search for in the

imagecreatefromxbm> <imagecreatefromstring
Last updated: Mon, 26 Nov 2007

view this page in

imagecreatefromwbmp

(PHP 4 >= 4.0.1, PHP 5)

imagecreatefromwbmp — 从 WBMP 文件或 URL 新建一图像

说明

resource imagecreatefromwbmp ( string $filename )

imagecreatefromwbmp() 返回一图像标识符,代表了从给定的文件名取得的图像。

imagecreatefromwbmp() 在失败时返回一个空字符串,并且输出一条错误信息,不幸地在浏览器中显示为断链接。为减轻调试工作下面的例子会产生一个错误 WBMP

Example#1 处理创建过程中的错误

<?php
function LoadWBMP($imgname)
{
    
$im = @imagecreatefromwbmp($imgname); /* Attempt to open */
    
if(!$im) { /* See if it failed */
        
$im  imagecreatetruecolor(2020); /* Create a blank image */
        
$bgc imagecolorallocate($im255255255);
        
$tc  imagecolorallocate($im000);
        
imagefilledrectangle($im001010$bgc);
        
/* Output an errmsg */
        
imagestring($im155"Error loading $imgname"$tc);
    }
    return 
$im;
}
?>

Note: WBMP 支持仅在 PHP 与 GD-1.8 或更高版本一起编译时可用。

Tip

如果“fopen wrappers”已经被激活,则在本函数中可以把 URL 作为文件名来使用。请参阅 fopen() 函数来获取怎样指定文件名的详细信息以及支持 URL 封装协议的列表:支持的协议/封装协议列表

Warning

Windows 版本的 PHP 在 4.3.0 版之前不支持本函数的远程文件访问,即使 allow_url_fopen 选项已被激活。



imagecreatefromxbm> <imagecreatefromstring
Last updated: Mon, 26 Nov 2007
 
add a note add a note User Contributed Notes
imagecreatefromwbmp
d at bwdp dot org
14-Aug-2008 07:07
why has php not made a predefined function like imagecreatefrombmp yet? surely there's more demand for it than there is for the wbmp function
AeroX @ aerox-studios
11-May-2008 05:54
.bmp is just hex encoded RGB values.
All you need to do is open in binary mode and seperate the header from the body.
Decode the width and height from the header.
Then create the image pixel by pixel from the RGB values in the body.

function imagecreatefrombmp( $filename )
{
    $file = fopen( $filename, "rb" );
    $read = fread( $file, 10 );
    while( !feof( $file ) && $read != "" )
    {
        $read .= fread( $file, 1024 );
    }
    $temp = unpack( "H*", $read );
    $hex = $temp[1];
    $header = substr( $hex, 0, 104 );
    $body = str_split( substr( $hex, 108 ), 6 );
    if( substr( $header, 0, 4 ) == "424d" )
    {
        $header = substr( $header, 4 );
        // Remove some stuff?
        $header = substr( $header, 32 );
        // Get the width
        $width = hexdec( substr( $header, 0, 2 ) );
        // Remove some stuff?
        $header = substr( $header, 8 );
        // Get the height
        $height = hexdec( substr( $header, 0, 2 ) );
        unset( $header );
    }
    $x = 0;
    $y = 1;
    $image = imagecreatetruecolor( $width, $height );
    foreach( $body as $rgb )
    {
        $r = hexdec( substr( $rgb, 4, 2 ) );
        $g = hexdec( substr( $rgb, 2, 2 ) );
        $b = hexdec( substr( $rgb, 0, 2 ) );
        $color = imagecolorallocate( $image, $r, $g, $b );
        imagesetpixel( $image, $x, $height-$y, $color );
        $x++;
        if( $x >= $width )
        {
            $x = 0;
            $y++;
        }
    }
    return $image;
}
nko38 dot fr at gmail dot com
02-Nov-2005 09:20
for .bmp files, convert them with bmp2png, then you can use this files in gd

http://cetus.sakura.ne.jp/softlab/b2p-home/
clambert at whitecrown dot net
17-Jun-2001 04:47
WBMP images are Wireless Bitmaps, not Windows Bitmaps. WBMP is used for bandwidth constrained, black and white, limited devices such as PDAs and Cell Phones.

imagecreatefromxbm> <imagecreatefromstring
Last updated: Mon, 26 Nov 2007
 
 
show source | credits | sitemap | contact | advertising | mirror sites