Hướng dẫn imagecreate() function in php - Hàm imageecreate () trong php

(Php 4, Php 5, Php 7, Php 8)

ImageCreate - Tạo một hình ảnh dựa trên bảng màu mớiCreate a new palette based image

Sự mô tả

ImageCreate (int $width, int $height): gdimage | false(int $width, int $height): GdImage|false

Nói chung, chúng tôi khuyên bạn nên sử dụng ImageCreatetRuEcolor () thay vì ImageCreate () để xử lý hình ảnh xảy ra trên hình ảnh chất lượng cao nhất có thể. Nếu bạn muốn xuất ra một hình ảnh bảng màu, thì ImageTrueColortOpalette () nên được gọi ngay lập tức trước khi lưu hình ảnh bằng ImagePng () hoặc ImageGif ().imagecreatetruecolor() instead of imagecreate() so that image processing occurs on the highest quality image possible. If you want to output a palette image, then imagetruecolortopalette() should be called immediately before saving the image with imagepng() or imagegif().

Thông số

width

Chiều rộng hình ảnh.

height

Chiều cao hình ảnh.

Trả về giá trị

Trả về một đối tượng hình ảnh thành công, false về lỗi.false on errors.

Thay đổi

Phiên bảnSự mô tả
8.0.0 ImageCreate (int $width, int $height): gdimage | falseGDImage instance now; previously, a resource was returned.

Nói chung, chúng tôi khuyên bạn nên sử dụng ImageCreatetRuEcolor () thay vì ImageCreate () để xử lý hình ảnh xảy ra trên hình ảnh chất lượng cao nhất có thể. Nếu bạn muốn xuất ra một hình ảnh bảng màu, thì ImageTrueColortOpalette () nên được gọi ngay lập tức trước khi lưu hình ảnh bằng ImagePng () hoặc ImageGif ().

Thông số

header("Content-Type: image/png");
$im = @imagecreate(11020)
    or die(
"Cannot Initialize new GD image stream");
$background_color imagecolorallocate($im000);
$text_color imagecolorallocate($im2331491);
imagestring($im155,  "A Simple Text String"$text_color);
imagepng($im);
imagedestroy($im);
?>

width

Chiều rộng hình ảnh.

  • height
  • Chiều cao hình ảnh.

Trả về giá trị

Trả về một đối tượng hình ảnh thành công, false về lỗi.

to create an image from a BMP file, I made this function, that return a resource like the others ImageCreateFrom function:

/*********************************************/
/* Fonction: ImageCreateFromBMP              */
/* Author:   DHKold                          */
/* Contact:                  */
/* Date:     The 15th of June 2005           */
/* Version:  2.0B                            */
/*********************************************/
function ImageCreateFromBMP($filename)
{
//Ouverture du fichier en mode binaire
  
if (! $f1 = fopen($filename,"rb")) return FALSE;//1 : Chargement des ent?tes FICHIER
  
$FILE = unpack("vfile_type/Vfile_size/Vreserved/Vbitmap_offset", fread($f1,14));
   if (
$FILE['file_type'] != 19778) return FALSE;//2 : Chargement des ent?tes BMP
  
$BMP = unpack('Vheader_size/Vwidth/Vheight/vplanes/vbits_per_pixel'.
                
'/Vcompression/Vsize_bitmap/Vhoriz_resolution'.
                
'/Vvert_resolution/Vcolors_used/Vcolors_important', fread($f1,40));
  
$BMP['colors'] = pow(2,$BMP['bits_per_pixel']);
   if (
$BMP['size_bitmap'] == 0) $BMP['size_bitmap'] = $FILE['file_size'] - $FILE['bitmap_offset'];
  
$BMP['bytes_per_pixel'] = $BMP['bits_per_pixel']/8;
  
$BMP['bytes_per_pixel2'] = ceil($BMP['bytes_per_pixel']);
  
$BMP['decal'] = ($BMP['width']*$BMP['bytes_per_pixel']/4);
  
$BMP['decal'] -= floor($BMP['width']*$BMP['bytes_per_pixel']/4);
  
$BMP['decal'] = 4-(4*$BMP['decal']);
   if (
$BMP['decal'] == 4) $BMP['decal'] = 0;//3 : Chargement des couleurs de la palette
  
$PALETTE = array();
   if (
$BMP['colors'] < 16777216)
   {
   
$PALETTE = unpack('V'.$BMP['colors'], fread($f1,$BMP['colors']*4));
   }
//4 : Cr?ation de l'image
  
$IMG = fread($f1,$BMP['size_bitmap']);
  
$VIDE = chr(0);$res = imagecreatetruecolor($BMP['width'],$BMP['height']);
  
$P = 0;
  
$Y = $BMP['height']-1;
   while (
$Y >= 0)
   {
   
$X=0;
    while (
$X < $BMP['width'])
    {
     if (
$BMP['bits_per_pixel'] == 24)
       
$COLOR = unpack("V",substr($IMG,$P,3).$VIDE);
     elseif (
$BMP['bits_per_pixel'] == 16)
     { 
       
$COLOR = unpack("n",substr($IMG,$P,2));
       
$COLOR[1] = $PALETTE[$COLOR[1]+1];
     }
     elseif (
$BMP['bits_per_pixel'] == 8)
     { 
       
$COLOR = unpack("n",$VIDE.substr($IMG,$P,1));
       
$COLOR[1] = $PALETTE[$COLOR[1]+1];
     }
     elseif (
$BMP['bits_per_pixel'] == 4)
     {
       
$COLOR = unpack("n",$VIDE.substr($IMG,floor($P),1));
        if ((
$P*2)%2 == 0) $COLOR[1] = ($COLOR[1] >> 4) ; else $COLOR[1] = ($COLOR[1] & 0x0F);
       
$COLOR[1] = $PALETTE[$COLOR[1]+1];
     }
     elseif (
$BMP['bits_per_pixel'] == 1)
     {
       
$COLOR = unpack("n",$VIDE.substr($IMG,floor($P),1));
        if     ((
$P*8)%8 == 0) $COLOR[1] =  $COLOR[1]        >>7;
        elseif ((
$P*8)%8 == 1) $COLOR[1] = ($COLOR[1] & 0x40)>>6;
        elseif ((
$P*8)%8 == 2) $COLOR[1] = ($COLOR[1] & 0x20)>>5;
        elseif ((
$P*8)%8 == 3) $COLOR[1] = ($COLOR[1] & 0x10)>>4;
        elseif ((
$P*8)%8 == 4) $COLOR[1] = ($COLOR[1] & 0x8)>>3;
        elseif ((
$P*8)%8 == 5) $COLOR[1] = ($COLOR[1] & 0x4)>>2;
        elseif ((
$P*8)%8 == 6) $COLOR[1] = ($COLOR[1] & 0x2)>>1;
        elseif ((
$P*8)%8 == 7) $COLOR[1] = ($COLOR[1] & 0x1);
       
$COLOR[1] = $PALETTE[$COLOR[1]+1];
     }
     else
        return
FALSE;
    
imagesetpixel($res,$X,$Y,$COLOR[1]);
    
$X++;
    
$P += $BMP['bytes_per_pixel'];
    }
   
$Y--;
   
$P+=$BMP['decal'];
   }
//Fermeture du fichier
  
fclose($f1);

return

$res;
}
?>

Thay đổi

Phiên bản

$height0

$height1

$height2

$height3

$height4

Khi thành công, chức năng này trả về một thể hiện gdimage ngay bây giờ; Trước đây, một tài nguyên đã được trả lại.

Ví dụ

$height5

$height6

$height7

Ví dụ #1 Tạo luồng hình ảnh GD mới và xuất hình ảnh.

Ví dụ trên sẽ xuất ra một cái gì đó tương tự như:

$height8

Xem thêm

Ví dụ trên sẽ xuất ra một cái gì đó tương tự như:

$height9

Xem thêm

Ví dụ

width0

width1

$height7

Ví dụ #1 Tạo luồng hình ảnh GD mới và xuất hình ảnh.

Ví dụ trên sẽ xuất ra một cái gì đó tương tự như:

width3

width4

width5

$height7

Xem thêm

ImageDestroy () - Phá hủy hình ảnh

width7

ImageCreatetRueColor () - Tạo hình ảnh màu thật mới

Ví dụ

width8

Ví dụ #1 Tạo luồng hình ảnh GD mới và xuất hình ảnh.

Phiên bản

width9

height0

height1

height2

height3

$height7

Khi thành công, chức năng này trả về một thể hiện gdimage ngay bây giờ; Trước đây, một tài nguyên đã được trả lại.

Ví dụ

height5

height6

height7

height8

Ví dụ #1 Tạo luồng hình ảnh GD mới và xuất hình ảnh.

Trả về một đối tượng hình ảnh thành công, false về lỗi.

height9

false0

false1

$height7

Thay đổi

Phiên bản

false3

false4

false5

false6

false7

false8

false9

header("Content-Type: image/png");
$im = @imagecreate(11020)
    or die(
"Cannot Initialize new GD image stream");
$background_color imagecolorallocate($im000);
$text_color imagecolorallocate($im2331491);
imagestring($im155,  "A Simple Text String"$text_color);
imagepng($im);
imagedestroy($im);
?>
0

header("Content-Type: image/png");
$im = @imagecreate(11020)
    or die(
"Cannot Initialize new GD image stream");
$background_color imagecolorallocate($im000);
$text_color imagecolorallocate($im2331491);
imagestring($im155,  "A Simple Text String"$text_color);
imagepng($im);
imagedestroy($im);
?>
1

header("Content-Type: image/png");
$im = @imagecreate(11020)
    or die(
"Cannot Initialize new GD image stream");
$background_color imagecolorallocate($im000);
$text_color imagecolorallocate($im2331491);
imagestring($im155,  "A Simple Text String"$text_color);
imagepng($im);
imagedestroy($im);
?>
2

header("Content-Type: image/png");
$im = @imagecreate(11020)
    or die(
"Cannot Initialize new GD image stream");
$background_color imagecolorallocate($im000);
$text_color imagecolorallocate($im2331491);
imagestring($im155,  "A Simple Text String"$text_color);
imagepng($im);
imagedestroy($im);
?>
3

header("Content-Type: image/png");
$im = @imagecreate(11020)
    or die(
"Cannot Initialize new GD image stream");
$background_color imagecolorallocate($im000);
$text_color imagecolorallocate($im2331491);
imagestring($im155,  "A Simple Text String"$text_color);
imagepng($im);
imagedestroy($im);
?>
4

header("Content-Type: image/png");
$im = @imagecreate(11020)
    or die(
"Cannot Initialize new GD image stream");
$background_color imagecolorallocate($im000);
$text_color imagecolorallocate($im2331491);
imagestring($im155,  "A Simple Text String"$text_color);
imagepng($im);
imagedestroy($im);
?>
5

header("Content-Type: image/png");
$im = @imagecreate(11020)
    or die(
"Cannot Initialize new GD image stream");
$background_color imagecolorallocate($im000);
$text_color imagecolorallocate($im2331491);
imagestring($im155,  "A Simple Text String"$text_color);
imagepng($im);
imagedestroy($im);
?>
6

$height7

Khi thành công, chức năng này trả về một thể hiện gdimage ngay bây giờ; Trước đây, một tài nguyên đã được trả lại.

Ví dụ

header("Content-Type: image/png");
$im = @imagecreate(11020)
    or die(
"Cannot Initialize new GD image stream");
$background_color imagecolorallocate($im000);
$text_color imagecolorallocate($im2331491);
imagestring($im155,  "A Simple Text String"$text_color);
imagepng($im);
imagedestroy($im);
?>
8

header("Content-Type: image/png");
$im = @imagecreate(11020)
    or die(
"Cannot Initialize new GD image stream");
$background_color imagecolorallocate($im000);
$text_color imagecolorallocate($im2331491);
imagestring($im155,  "A Simple Text String"$text_color);
imagepng($im);
imagedestroy($im);
?>
9

to create an image from a BMP file, I made this function, that return a resource like the others ImageCreateFrom function:0

to create an image from a BMP file, I made this function, that return a resource like the others ImageCreateFrom function:1

to create an image from a BMP file, I made this function, that return a resource like the others ImageCreateFrom function:2

to create an image from a BMP file, I made this function, that return a resource like the others ImageCreateFrom function:3

to create an image from a BMP file, I made this function, that return a resource like the others ImageCreateFrom function:4

Ví dụ #1 Tạo luồng hình ảnh GD mới và xuất hình ảnh.

Phiên bản

to create an image from a BMP file, I made this function, that return a resource like the others ImageCreateFrom function:5

to create an image from a BMP file, I made this function, that return a resource like the others ImageCreateFrom function:6

to create an image from a BMP file, I made this function, that return a resource like the others ImageCreateFrom function:7

to create an image from a BMP file, I made this function, that return a resource like the others ImageCreateFrom function:8

to create an image from a BMP file, I made this function, that return a resource like the others ImageCreateFrom function:9

/*********************************************/
/* Fonction: ImageCreateFromBMP              */
/* Author:   DHKold                          */
/* Contact:                  */
/* Date:     The 15th of June 2005           */
/* Version:  2.0B                            */
/*********************************************/
function ImageCreateFromBMP($filename)
{
//Ouverture du fichier en mode binaire
  
if (! $f1 = fopen($filename,"rb")) return FALSE;//1 : Chargement des ent?tes FICHIER
  
$FILE = unpack("vfile_type/Vfile_size/Vreserved/Vbitmap_offset", fread($f1,14));
   if (
$FILE['file_type'] != 19778) return FALSE;//2 : Chargement des ent?tes BMP
  
$BMP = unpack('Vheader_size/Vwidth/Vheight/vplanes/vbits_per_pixel'.
                
'/Vcompression/Vsize_bitmap/Vhoriz_resolution'.
                
'/Vvert_resolution/Vcolors_used/Vcolors_important', fread($f1,40));
  
$BMP['colors'] = pow(2,$BMP['bits_per_pixel']);
   if (
$BMP['size_bitmap'] == 0) $BMP['size_bitmap'] = $FILE['file_size'] - $FILE['bitmap_offset'];
  
$BMP['bytes_per_pixel'] = $BMP['bits_per_pixel']/8;
  
$BMP['bytes_per_pixel2'] = ceil($BMP['bytes_per_pixel']);
  
$BMP['decal'] = ($BMP['width']*$BMP['bytes_per_pixel']/4);
  
$BMP['decal'] -= floor($BMP['width']*$BMP['bytes_per_pixel']/4);
  
$BMP['decal'] = 4-(4*$BMP['decal']);
   if (
$BMP['decal'] == 4) $BMP['decal'] = 0;//3 : Chargement des couleurs de la palette
  
$PALETTE = array();
   if (
$BMP['colors'] < 16777216)
   {
   
$PALETTE = unpack('V'.$BMP['colors'], fread($f1,$BMP['colors']*4));
   }
//4 : Cr?ation de l'image
  
$IMG = fread($f1,$BMP['size_bitmap']);
  
$VIDE = chr(0);$res = imagecreatetruecolor($BMP['width'],$BMP['height']);
  
$P = 0;
  
$Y = $BMP['height']-1;
   while (
$Y >= 0)
   {
   
$X=0;
    while (
$X < $BMP['width'])
    {
     if (
$BMP['bits_per_pixel'] == 24)
       
$COLOR = unpack("V",substr($IMG,$P,3).$VIDE);
     elseif (
$BMP['bits_per_pixel'] == 16)
     { 
       
$COLOR = unpack("n",substr($IMG,$P,2));
       
$COLOR[1] = $PALETTE[$COLOR[1]+1];
     }
     elseif (
$BMP['bits_per_pixel'] == 8)
     { 
       
$COLOR = unpack("n",$VIDE.substr($IMG,$P,1));
       
$COLOR[1] = $PALETTE[$COLOR[1]+1];
     }
     elseif (
$BMP['bits_per_pixel'] == 4)
     {
       
$COLOR = unpack("n",$VIDE.substr($IMG,floor($P),1));
        if ((
$P*2)%2 == 0) $COLOR[1] = ($COLOR[1] >> 4) ; else $COLOR[1] = ($COLOR[1] & 0x0F);
       
$COLOR[1] = $PALETTE[$COLOR[1]+1];
     }
     elseif (
$BMP['bits_per_pixel'] == 1)
     {
       
$COLOR = unpack("n",$VIDE.substr($IMG,floor($P),1));
        if     ((
$P*8)%8 == 0) $COLOR[1] =  $COLOR[1]        >>7;
        elseif ((
$P*8)%8 == 1) $COLOR[1] = ($COLOR[1] & 0x40)>>6;
        elseif ((
$P*8)%8 == 2) $COLOR[1] = ($COLOR[1] & 0x20)>>5;
        elseif ((
$P*8)%8 == 3) $COLOR[1] = ($COLOR[1] & 0x10)>>4;
        elseif ((
$P*8)%8 == 4) $COLOR[1] = ($COLOR[1] & 0x8)>>3;
        elseif ((
$P*8)%8 == 5) $COLOR[1] = ($COLOR[1] & 0x4)>>2;
        elseif ((
$P*8)%8 == 6) $COLOR[1] = ($COLOR[1] & 0x2)>>1;
        elseif ((
$P*8)%8 == 7) $COLOR[1] = ($COLOR[1] & 0x1);
       
$COLOR[1] = $PALETTE[$COLOR[1]+1];
     }
     else
        return
FALSE;
    
imagesetpixel($res,$X,$Y,$COLOR[1]);
    
$X++;
    
$P += $BMP['bytes_per_pixel'];
    }
   
$Y--;
   
$P+=$BMP['decal'];
   }
//Fermeture du fichier
  
fclose($f1);
0

$height7

Khi thành công, chức năng này trả về một thể hiện gdimage ngay bây giờ; Trước đây, một tài nguyên đã được trả lại.

Ví dụ

/*********************************************/
/* Fonction: ImageCreateFromBMP              */
/* Author:   DHKold                          */
/* Contact:                  */
/* Date:     The 15th of June 2005           */
/* Version:  2.0B                            */
/*********************************************/
function ImageCreateFromBMP($filename)
{
//Ouverture du fichier en mode binaire
  
if (! $f1 = fopen($filename,"rb")) return FALSE;//1 : Chargement des ent?tes FICHIER
  
$FILE = unpack("vfile_type/Vfile_size/Vreserved/Vbitmap_offset", fread($f1,14));
   if (
$FILE['file_type'] != 19778) return FALSE;//2 : Chargement des ent?tes BMP
  
$BMP = unpack('Vheader_size/Vwidth/Vheight/vplanes/vbits_per_pixel'.
                
'/Vcompression/Vsize_bitmap/Vhoriz_resolution'.
                
'/Vvert_resolution/Vcolors_used/Vcolors_important', fread($f1,40));
  
$BMP['colors'] = pow(2,$BMP['bits_per_pixel']);
   if (
$BMP['size_bitmap'] == 0) $BMP['size_bitmap'] = $FILE['file_size'] - $FILE['bitmap_offset'];
  
$BMP['bytes_per_pixel'] = $BMP['bits_per_pixel']/8;
  
$BMP['bytes_per_pixel2'] = ceil($BMP['bytes_per_pixel']);
  
$BMP['decal'] = ($BMP['width']*$BMP['bytes_per_pixel']/4);
  
$BMP['decal'] -= floor($BMP['width']*$BMP['bytes_per_pixel']/4);
  
$BMP['decal'] = 4-(4*$BMP['decal']);
   if (
$BMP['decal'] == 4) $BMP['decal'] = 0;//3 : Chargement des couleurs de la palette
  
$PALETTE = array();
   if (
$BMP['colors'] < 16777216)
   {
   
$PALETTE = unpack('V'.$BMP['colors'], fread($f1,$BMP['colors']*4));
   }
//4 : Cr?ation de l'image
  
$IMG = fread($f1,$BMP['size_bitmap']);
  
$VIDE = chr(0);$res = imagecreatetruecolor($BMP['width'],$BMP['height']);
  
$P = 0;
  
$Y = $BMP['height']-1;
   while (
$Y >= 0)
   {
   
$X=0;
    while (
$X < $BMP['width'])
    {
     if (
$BMP['bits_per_pixel'] == 24)
       
$COLOR = unpack("V",substr($IMG,$P,3).$VIDE);
     elseif (
$BMP['bits_per_pixel'] == 16)
     { 
       
$COLOR = unpack("n",substr($IMG,$P,2));
       
$COLOR[1] = $PALETTE[$COLOR[1]+1];
     }
     elseif (
$BMP['bits_per_pixel'] == 8)
     { 
       
$COLOR = unpack("n",$VIDE.substr($IMG,$P,1));
       
$COLOR[1] = $PALETTE[$COLOR[1]+1];
     }
     elseif (
$BMP['bits_per_pixel'] == 4)
     {
       
$COLOR = unpack("n",$VIDE.substr($IMG,floor($P),1));
        if ((
$P*2)%2 == 0) $COLOR[1] = ($COLOR[1] >> 4) ; else $COLOR[1] = ($COLOR[1] & 0x0F);
       
$COLOR[1] = $PALETTE[$COLOR[1]+1];
     }
     elseif (
$BMP['bits_per_pixel'] == 1)
     {
       
$COLOR = unpack("n",$VIDE.substr($IMG,floor($P),1));
        if     ((
$P*8)%8 == 0) $COLOR[1] =  $COLOR[1]        >>7;
        elseif ((
$P*8)%8 == 1) $COLOR[1] = ($COLOR[1] & 0x40)>>6;
        elseif ((
$P*8)%8 == 2) $COLOR[1] = ($COLOR[1] & 0x20)>>5;
        elseif ((
$P*8)%8 == 3) $COLOR[1] = ($COLOR[1] & 0x10)>>4;
        elseif ((
$P*8)%8 == 4) $COLOR[1] = ($COLOR[1] & 0x8)>>3;
        elseif ((
$P*8)%8 == 5) $COLOR[1] = ($COLOR[1] & 0x4)>>2;
        elseif ((
$P*8)%8 == 6) $COLOR[1] = ($COLOR[1] & 0x2)>>1;
        elseif ((
$P*8)%8 == 7) $COLOR[1] = ($COLOR[1] & 0x1);
       
$COLOR[1] = $PALETTE[$COLOR[1]+1];
     }
     else
        return
FALSE;
    
imagesetpixel($res,$X,$Y,$COLOR[1]);
    
$X++;
    
$P += $BMP['bytes_per_pixel'];
    }
   
$Y--;
   
$P+=$BMP['decal'];
   }
//Fermeture du fichier
  
fclose($f1);
2

Ví dụ #1 Tạo luồng hình ảnh GD mới và xuất hình ảnh.

Phiên bản

/*********************************************/
/* Fonction: ImageCreateFromBMP              */
/* Author:   DHKold                          */
/* Contact:                  */
/* Date:     The 15th of June 2005           */
/* Version:  2.0B                            */
/*********************************************/
function ImageCreateFromBMP($filename)
{
//Ouverture du fichier en mode binaire
  
if (! $f1 = fopen($filename,"rb")) return FALSE;//1 : Chargement des ent?tes FICHIER
  
$FILE = unpack("vfile_type/Vfile_size/Vreserved/Vbitmap_offset", fread($f1,14));
   if (
$FILE['file_type'] != 19778) return FALSE;//2 : Chargement des ent?tes BMP
  
$BMP = unpack('Vheader_size/Vwidth/Vheight/vplanes/vbits_per_pixel'.
                
'/Vcompression/Vsize_bitmap/Vhoriz_resolution'.
                
'/Vvert_resolution/Vcolors_used/Vcolors_important', fread($f1,40));
  
$BMP['colors'] = pow(2,$BMP['bits_per_pixel']);
   if (
$BMP['size_bitmap'] == 0) $BMP['size_bitmap'] = $FILE['file_size'] - $FILE['bitmap_offset'];
  
$BMP['bytes_per_pixel'] = $BMP['bits_per_pixel']/8;
  
$BMP['bytes_per_pixel2'] = ceil($BMP['bytes_per_pixel']);
  
$BMP['decal'] = ($BMP['width']*$BMP['bytes_per_pixel']/4);
  
$BMP['decal'] -= floor($BMP['width']*$BMP['bytes_per_pixel']/4);
  
$BMP['decal'] = 4-(4*$BMP['decal']);
   if (
$BMP['decal'] == 4) $BMP['decal'] = 0;//3 : Chargement des couleurs de la palette
  
$PALETTE = array();
   if (
$BMP['colors'] < 16777216)
   {
   
$PALETTE = unpack('V'.$BMP['colors'], fread($f1,$BMP['colors']*4));
   }
//4 : Cr?ation de l'image
  
$IMG = fread($f1,$BMP['size_bitmap']);
  
$VIDE = chr(0);$res = imagecreatetruecolor($BMP['width'],$BMP['height']);
  
$P = 0;
  
$Y = $BMP['height']-1;
   while (
$Y >= 0)
   {
   
$X=0;
    while (
$X < $BMP['width'])
    {
     if (
$BMP['bits_per_pixel'] == 24)
       
$COLOR = unpack("V",substr($IMG,$P,3).$VIDE);
     elseif (
$BMP['bits_per_pixel'] == 16)
     { 
       
$COLOR = unpack("n",substr($IMG,$P,2));
       
$COLOR[1] = $PALETTE[$COLOR[1]+1];
     }
     elseif (
$BMP['bits_per_pixel'] == 8)
     { 
       
$COLOR = unpack("n",$VIDE.substr($IMG,$P,1));
       
$COLOR[1] = $PALETTE[$COLOR[1]+1];
     }
     elseif (
$BMP['bits_per_pixel'] == 4)
     {
       
$COLOR = unpack("n",$VIDE.substr($IMG,floor($P),1));
        if ((
$P*2)%2 == 0) $COLOR[1] = ($COLOR[1] >> 4) ; else $COLOR[1] = ($COLOR[1] & 0x0F);
       
$COLOR[1] = $PALETTE[$COLOR[1]+1];
     }
     elseif (
$BMP['bits_per_pixel'] == 1)
     {
       
$COLOR = unpack("n",$VIDE.substr($IMG,floor($P),1));
        if     ((
$P*8)%8 == 0) $COLOR[1] =  $COLOR[1]        >>7;
        elseif ((
$P*8)%8 == 1) $COLOR[1] = ($COLOR[1] & 0x40)>>6;
        elseif ((
$P*8)%8 == 2) $COLOR[1] = ($COLOR[1] & 0x20)>>5;
        elseif ((
$P*8)%8 == 3) $COLOR[1] = ($COLOR[1] & 0x10)>>4;
        elseif ((
$P*8)%8 == 4) $COLOR[1] = ($COLOR[1] & 0x8)>>3;
        elseif ((
$P*8)%8 == 5) $COLOR[1] = ($COLOR[1] & 0x4)>>2;
        elseif ((
$P*8)%8 == 6) $COLOR[1] = ($COLOR[1] & 0x2)>>1;
        elseif ((
$P*8)%8 == 7) $COLOR[1] = ($COLOR[1] & 0x1);
       
$COLOR[1] = $PALETTE[$COLOR[1]+1];
     }
     else
        return
FALSE;
    
imagesetpixel($res,$X,$Y,$COLOR[1]);
    
$X++;
    
$P += $BMP['bytes_per_pixel'];
    }
   
$Y--;
   
$P+=$BMP['decal'];
   }
//Fermeture du fichier
  
fclose($f1);
3

/*********************************************/
/* Fonction: ImageCreateFromBMP              */
/* Author:   DHKold                          */
/* Contact:                  */
/* Date:     The 15th of June 2005           */
/* Version:  2.0B                            */
/*********************************************/
function ImageCreateFromBMP($filename)
{
//Ouverture du fichier en mode binaire
  
if (! $f1 = fopen($filename,"rb")) return FALSE;//1 : Chargement des ent?tes FICHIER
  
$FILE = unpack("vfile_type/Vfile_size/Vreserved/Vbitmap_offset", fread($f1,14));
   if (
$FILE['file_type'] != 19778) return FALSE;//2 : Chargement des ent?tes BMP
  
$BMP = unpack('Vheader_size/Vwidth/Vheight/vplanes/vbits_per_pixel'.
                
'/Vcompression/Vsize_bitmap/Vhoriz_resolution'.
                
'/Vvert_resolution/Vcolors_used/Vcolors_important', fread($f1,40));
  
$BMP['colors'] = pow(2,$BMP['bits_per_pixel']);
   if (
$BMP['size_bitmap'] == 0) $BMP['size_bitmap'] = $FILE['file_size'] - $FILE['bitmap_offset'];
  
$BMP['bytes_per_pixel'] = $BMP['bits_per_pixel']/8;
  
$BMP['bytes_per_pixel2'] = ceil($BMP['bytes_per_pixel']);
  
$BMP['decal'] = ($BMP['width']*$BMP['bytes_per_pixel']/4);
  
$BMP['decal'] -= floor($BMP['width']*$BMP['bytes_per_pixel']/4);
  
$BMP['decal'] = 4-(4*$BMP['decal']);
   if (
$BMP['decal'] == 4) $BMP['decal'] = 0;//3 : Chargement des couleurs de la palette
  
$PALETTE = array();
   if (
$BMP['colors'] < 16777216)
   {
   
$PALETTE = unpack('V'.$BMP['colors'], fread($f1,$BMP['colors']*4));
   }
//4 : Cr?ation de l'image
  
$IMG = fread($f1,$BMP['size_bitmap']);
  
$VIDE = chr(0);$res = imagecreatetruecolor($BMP['width'],$BMP['height']);
  
$P = 0;
  
$Y = $BMP['height']-1;
   while (
$Y >= 0)
   {
   
$X=0;
    while (
$X < $BMP['width'])
    {
     if (
$BMP['bits_per_pixel'] == 24)
       
$COLOR = unpack("V",substr($IMG,$P,3).$VIDE);
     elseif (
$BMP['bits_per_pixel'] == 16)
     { 
       
$COLOR = unpack("n",substr($IMG,$P,2));
       
$COLOR[1] = $PALETTE[$COLOR[1]+1];
     }
     elseif (
$BMP['bits_per_pixel'] == 8)
     { 
       
$COLOR = unpack("n",$VIDE.substr($IMG,$P,1));
       
$COLOR[1] = $PALETTE[$COLOR[1]+1];
     }
     elseif (
$BMP['bits_per_pixel'] == 4)
     {
       
$COLOR = unpack("n",$VIDE.substr($IMG,floor($P),1));
        if ((
$P*2)%2 == 0) $COLOR[1] = ($COLOR[1] >> 4) ; else $COLOR[1] = ($COLOR[1] & 0x0F);
       
$COLOR[1] = $PALETTE[$COLOR[1]+1];
     }
     elseif (
$BMP['bits_per_pixel'] == 1)
     {
       
$COLOR = unpack("n",$VIDE.substr($IMG,floor($P),1));
        if     ((
$P*8)%8 == 0) $COLOR[1] =  $COLOR[1]        >>7;
        elseif ((
$P*8)%8 == 1) $COLOR[1] = ($COLOR[1] & 0x40)>>6;
        elseif ((
$P*8)%8 == 2) $COLOR[1] = ($COLOR[1] & 0x20)>>5;
        elseif ((
$P*8)%8 == 3) $COLOR[1] = ($COLOR[1] & 0x10)>>4;
        elseif ((
$P*8)%8 == 4) $COLOR[1] = ($COLOR[1] & 0x8)>>3;
        elseif ((
$P*8)%8 == 5) $COLOR[1] = ($COLOR[1] & 0x4)>>2;
        elseif ((
$P*8)%8 == 6) $COLOR[1] = ($COLOR[1] & 0x2)>>1;
        elseif ((
$P*8)%8 == 7) $COLOR[1] = ($COLOR[1] & 0x1);
       
$COLOR[1] = $PALETTE[$COLOR[1]+1];
     }
     else
        return
FALSE;
    
imagesetpixel($res,$X,$Y,$COLOR[1]);
    
$X++;
    
$P += $BMP['bytes_per_pixel'];
    }
   
$Y--;
   
$P+=$BMP['decal'];
   }
//Fermeture du fichier
  
fclose($f1);
4

$height7

Khi thành công, chức năng này trả về một thể hiện gdimage ngay bây giờ; Trước đây, một tài nguyên đã được trả lại.

Ví dụ

/*********************************************/
/* Fonction: ImageCreateFromBMP              */
/* Author:   DHKold                          */
/* Contact:                  */
/* Date:     The 15th of June 2005           */
/* Version:  2.0B                            */
/*********************************************/
function ImageCreateFromBMP($filename)
{
//Ouverture du fichier en mode binaire
  
if (! $f1 = fopen($filename,"rb")) return FALSE;//1 : Chargement des ent?tes FICHIER
  
$FILE = unpack("vfile_type/Vfile_size/Vreserved/Vbitmap_offset", fread($f1,14));
   if (
$FILE['file_type'] != 19778) return FALSE;//2 : Chargement des ent?tes BMP
  
$BMP = unpack('Vheader_size/Vwidth/Vheight/vplanes/vbits_per_pixel'.
                
'/Vcompression/Vsize_bitmap/Vhoriz_resolution'.
                
'/Vvert_resolution/Vcolors_used/Vcolors_important', fread($f1,40));
  
$BMP['colors'] = pow(2,$BMP['bits_per_pixel']);
   if (
$BMP['size_bitmap'] == 0) $BMP['size_bitmap'] = $FILE['file_size'] - $FILE['bitmap_offset'];
  
$BMP['bytes_per_pixel'] = $BMP['bits_per_pixel']/8;
  
$BMP['bytes_per_pixel2'] = ceil($BMP['bytes_per_pixel']);
  
$BMP['decal'] = ($BMP['width']*$BMP['bytes_per_pixel']/4);
  
$BMP['decal'] -= floor($BMP['width']*$BMP['bytes_per_pixel']/4);
  
$BMP['decal'] = 4-(4*$BMP['decal']);
   if (
$BMP['decal'] == 4) $BMP['decal'] = 0;//3 : Chargement des couleurs de la palette
  
$PALETTE = array();
   if (
$BMP['colors'] < 16777216)
   {
   
$PALETTE = unpack('V'.$BMP['colors'], fread($f1,$BMP['colors']*4));
   }
//4 : Cr?ation de l'image
  
$IMG = fread($f1,$BMP['size_bitmap']);
  
$VIDE = chr(0);$res = imagecreatetruecolor($BMP['width'],$BMP['height']);
  
$P = 0;
  
$Y = $BMP['height']-1;
   while (
$Y >= 0)
   {
   
$X=0;
    while (
$X < $BMP['width'])
    {
     if (
$BMP['bits_per_pixel'] == 24)
       
$COLOR = unpack("V",substr($IMG,$P,3).$VIDE);
     elseif (
$BMP['bits_per_pixel'] == 16)
     { 
       
$COLOR = unpack("n",substr($IMG,$P,2));
       
$COLOR[1] = $PALETTE[$COLOR[1]+1];
     }
     elseif (
$BMP['bits_per_pixel'] == 8)
     { 
       
$COLOR = unpack("n",$VIDE.substr($IMG,$P,1));
       
$COLOR[1] = $PALETTE[$COLOR[1]+1];
     }
     elseif (
$BMP['bits_per_pixel'] == 4)
     {
       
$COLOR = unpack("n",$VIDE.substr($IMG,floor($P),1));
        if ((
$P*2)%2 == 0) $COLOR[1] = ($COLOR[1] >> 4) ; else $COLOR[1] = ($COLOR[1] & 0x0F);
       
$COLOR[1] = $PALETTE[$COLOR[1]+1];
     }
     elseif (
$BMP['bits_per_pixel'] == 1)
     {
       
$COLOR = unpack("n",$VIDE.substr($IMG,floor($P),1));
        if     ((
$P*8)%8 == 0) $COLOR[1] =  $COLOR[1]        >>7;
        elseif ((
$P*8)%8 == 1) $COLOR[1] = ($COLOR[1] & 0x40)>>6;
        elseif ((
$P*8)%8 == 2) $COLOR[1] = ($COLOR[1] & 0x20)>>5;
        elseif ((
$P*8)%8 == 3) $COLOR[1] = ($COLOR[1] & 0x10)>>4;
        elseif ((
$P*8)%8 == 4) $COLOR[1] = ($COLOR[1] & 0x8)>>3;
        elseif ((
$P*8)%8 == 5) $COLOR[1] = ($COLOR[1] & 0x4)>>2;
        elseif ((
$P*8)%8 == 6) $COLOR[1] = ($COLOR[1] & 0x2)>>1;
        elseif ((
$P*8)%8 == 7) $COLOR[1] = ($COLOR[1] & 0x1);
       
$COLOR[1] = $PALETTE[$COLOR[1]+1];
     }
     else
        return
FALSE;
    
imagesetpixel($res,$X,$Y,$COLOR[1]);
    
$X++;
    
$P += $BMP['bytes_per_pixel'];
    }
   
$Y--;
   
$P+=$BMP['decal'];
   }
//Fermeture du fichier
  
fclose($f1);
6