When adding product photos in the ecshop background, the bmp format cannot generate thumbnails. when the ecshop background generates Image photos in batches, the bmp format cannot generate thumbnails. how can this problem be solved? & Nbsp; what I want to achieve is to generate an image in bmp format! ------ Solution ------------------ ecshop itself does not support bmp image generation and reduction. You must first convert to one of gifjpgpng ------ the bmp format cannot generate a thumbnail when adding a product album to the ecshop background
When the ecshop background generates Image product albums in batches, the bmp format cannot generate thumbnails. how can this problem be solved? What I want to achieve is to generate an image in bmp format!
------ Solution --------------------
Ecshop itself does not support bmp image generation and reduction. You must first convert the image to gif, jpg, or png.
------ Solution --------------------
You can download ImageCreateFromBMP. php
Then modify your program.
------ Solution --------------------
Reference:
Quote: reference:
Ecshop itself does not support bmp image generation and reduction. You must first convert the image to gif, jpg, or png.
What I want is to make ecshop support this generation graph! What should we do?
Schemdes/cls_image.php is the image processing library of ecshop. you can use the ImageCreateFromBMP function to expand it on your own.
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 ;