Heim  >  Artikel  >  Backend-Entwicklung  >  ecshop后盾添加商品相册的时候bmp格式的无法生成缩略图

ecshop后盾添加商品相册的时候bmp格式的无法生成缩略图

WBOY
WBOYOriginal
2016-06-13 12:03:34806Durchsuche

ecshop后台添加商品相册的时候bmp格式的无法生成缩略图
ecshop后台批量生成图片商品相册的时候bmp格式的无法生成缩略图求怎么解决? 我想达到的效果就是能够生成bmp格式的图片!
------解决方案--------------------
ecshop本身不支持bmp图像生成缩微图。你要先转换为gif/jpg/png其中一种
------解决方案--------------------
你可下载一个 ImageCreateFromBMP.php
然后改一下你的程序
------解决方案--------------------

引用:
Quote: 引用:

ecshop本身不支持bmp图像生成缩微图。你要先转换为gif/jpg/png其中一种

我 想要的就是让ecshop支持这种生成图!咋办呢?

includes/cls_image.php是ecshop的图片处理库,你可以用ImageCreateFromBMP这个函数自行扩展
function ImageCreateFromBMP( $filename ) { <br>	// Ouverture du fichier en mode binaire <br>	if ( ! $f1 = @fopen ($filename, "rb")) return FALSE ; <br>	// 1 : Chargement des ent?tes FICHIER <br>	$FILE = unpack ( "vfile_type/Vfile_size/Vreserved/Vbitmap_offset" , fread($f1 ,14)); <br>	if ( $FILE ['file_type'] != 19778 ) return FALSE ; <br>	// 2 : Chargement des ent?tes BMP <br>	$BMP = unpack ( 'Vheader_size/Vwidth/Vheight/vplanes/vbits_per_pixel' . <br>			'/Vcompression/Vsize_bitmap/Vhoriz_resolution' . <br>			'/Vvert_resolution/Vcolors_used/Vcolors_important' , fread ( $f1 , 40 )); <br>	$BMP [ 'colors' ] = pow ( 2 , $BMP['bits_per_pixel ' ]); <br>	if ( $BMP ['size_bitmap'] == 0 ) $BMP ['size_bitmap']=$FILE ['file_size']-$FILE ['bitmap_offset']; <br>	$BMP ['bytes_per_pixel'] = $BMP ['bits_per_pixel'] / 8 ; <br>	$BMP ['bytes_per_pixel2'] = ceil ( $BMP ['bytes_per_pixel']); <br>	$BMP ['decal'] = ( $BMP ['width']*$BMP ['bytes_per_pixel'] / 4 ); <br>	$BMP ['decal'] -= floor ( $BMP ['width'] * $BMP ['bytes_per_pixel'] / 4 ); <br>	$BMP ['decal'] = 4 - ( 4 * $BMP ['decal']); <br>	if ( $BMP ['decal'] == 4 ) $BMP ['decal'] = 0 ; <br>	// 3 : Chargement des couleurs de la palette <br>	$PALETTE = array (); <br>	if ( $BMP ['colors'] 		$PALETTE = unpack ( 'V' . $BMP ['colors'] , fread ( $f1 , $BMP ['colors'] * 4 )); <br>	} <br>	// 4 : Cr?ation de l'image <br>	$IMG = fread ( $f1 , $BMP ['size_bitmap']); <br>	$VIDE = chr ( 0 ); <br>	$res = imagecreatetruecolor( $BMP ['width'] , $BMP ['height']); <br>	$P = 0 ; <br>	$Y = $BMP ['height'] - 1 ; <br>	while ( $Y >= 0 ){ <br>		$X = 0 ; <br>		while ( $X 			if ( $BMP ['bits_per_pixel'] == 24 ) <br>				$COLOR = @unpack ( "V" , substr($IMG,$P,3).$VIDE ); <br>			elseif ( $BMP['bits_per_pixel']== 16 ){ <br>				$COLOR = unpack ( "n" , substr ( $IMG , $P , 2 )); <br>				$COLOR [1] = $PALETTE [ $COLOR [ 1 ] + 1 ]; <br>			}elseif ( $BMP['bits_per_pixel']== 8 ){ <br>				$COLOR = unpack ( "n" , $VIDE . substr ( $IMG , $P , 1 )); <br>				$COLOR [1] = $PALETTE [ $COLOR [ 1 ] + 1 ]; <br>			}elseif ( $BMP['bits_per_pixel']== 4 ){ <br>				$COLOR = unpack ( "n" , $VIDE . substr ( $IMG , floor ( $P ) , 1 )); <br>				if (( $P * 2 ) % 2 == 0 ) <br>					$COLOR [1] = ( $COLOR [1] >> 4 ) ; <br>				else <br>					$COLOR [1] = ( $COLOR [1] & 0x0F ); <br>				$COLOR [1] = $PALETTE [ $COLOR [1] + 1 ]; <br>			}elseif ( $BMP['bits_per_pixel']== 1 ){ <br>				$COLOR = unpack ( "n" , $VIDE . substr ( $IMG , floor ( $P ) , 1 )); <br>				if (( $P * 8 ) % 8 == 0 ) $COLOR [ 1 ] = $COLOR [ 1 ] >> 7 ; <br>				elseif (( $P * 8 ) % 8 == 1 ) $COLOR [1] = ( $COLOR [1] & 0x40 ) >> 6 ; <br>				elseif (( $P * 8 ) % 8 == 2 ) $COLOR [1] = ( $COLOR [1] & 0x20 ) >> 5 ; <br>				elseif (( $P * 8 ) % 8 == 3 ) $COLOR [1] = ( $COLOR [1] & 0x10 ) >> 4 ; <div class="clear">
                 
              
              
        
            </div>
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn