The thumbnails cannot be generated in bmp format when the product album is added to the ecshop backend.

Source: Internet
Author: User
Tags bmp image image processing library
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 ;

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.