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

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

WBOY
Freigeben: 2016-06-23 14:12:30
Original
1011 Leute haben es durchsucht

ecshop bmp

ecshop后台批量生成图片商品相册的时候bmp格式的无法生成缩略图求怎么解决? 我想达到的效果就是能够生成bmp格式的图片!

回复讨论(解决方案)

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

ecshop本身不支持bmp图像生成缩微图。你要先转换为gif/jpg/png其中一种
我 想要的就是让ecshop支持这种生成图!咋办呢?

你可下载一个 ImageCreateFromBMP.php
然后改一下你的程序


ecshop本身不支持bmp图像生成缩微图。你要先转换为gif/jpg/png其中一种
我 想要的就是让ecshop支持这种生成图!咋办呢?
includes/cls_image.php是ecshop的图片处理库,你可以用ImageCreateFromBMP这个函数自行扩展

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 ; } 
Nach dem Login kopieren

Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage