No hay ninguna función para generar imágenes bmp en la biblioteca GD, así que escribí una yo mismo. Esta función también tiene un algoritmo de compresión que aún no he escrito, pero es suficiente. Los estudiantes que lo necesiten pueden echarle un vistazo.
int imagebmp (imagen de recurso [, nombre de archivo de cadena [, int $bit [, compresión int]]] )
$im: recurso de imagen
$ nombre de archivo: si desea guardarlo como un archivo, especifique el nombre del archivo. Si está vacío, se generará directamente en el navegador.
$bit: calidad de imagen (1, 4, 8, 16, 24, 32 bits)
$ compresión: método de compresión, 0 significa sin compresión, 1 usa el algoritmo de compresión RLE8 para la compresión.
Nota: esta función aún requiere el soporte de la biblioteca GD.
Demostración:
$im = imagecreatefrompng("test.png");
imagenbmp($im);
destrucción de imágenes ($im);
Fuente:
/**
* Crear imágenes en formato bmp
*
* @autor: leyenda ( [email protected] )
* @enlace: http://www.ugia.cn/?p=96
* @description: crea un archivo de mapa de bits con la biblioteca GD
* @versión: 0.1
*
* @param recurso $im recurso de imagen
* @param string $filename Si desea guardarlo como un archivo, especifique el nombre del archivo. Si está vacío, se generará directamente en el navegador.
* @param entero $bit calidad de imagen (1, 4, 8, 16, 24, 32 bits)
* @param entero $compression método de compresión, 0 significa sin compresión, 1 usa el algoritmo de compresión RLE8 para la compresión
*
* @return entero
*/
función imagebmp(&$im, $nombre de archivo = '', $bit = 8, $compresión = 0)
{
si (!in_array($bit, matriz(1, 4, 8, 16, 24, 32)))
{
$bit = 8;
}
sino si ($bit == 32) // todo:32 bits
{
$bit = 24;
}
$bits = pow(2, $bit);
//Ajustar paleta de colores
imagetruecolortopalette($im, verdadero, $bits);
$ancho = imágenesx($im);
$altura = imágenesy($im);
$colors_num = imagencolorstotal($im);
si ($bit <= 8)
{
// índice de color
$rgb_quad = '';
para ($i = 0; $i < $colors_num; $i ++)
{
$colores = imagecolorsforindex($im, $i);
$rgb_quad .= chr($colores['azul']) chr($colores['verde']) chr($colores['rojo']) "