Maison > Article > développement back-end > Comment convertir bmp au format jpg en php
Comment convertir php bmp en jpg : ouvrez d'abord le fichier "php.ini" ; puis ouvrez la bibliothèque d'extensions gd ; enfin utilisez "changeBMPtoJPG" et d'autres méthodes pour convertir le fichier bmp au format jpg.
Recommandé : "Tutoriel vidéo PHP"
php convertit le format d'image bmp au format jpg
Avant de convertir le format d'image, générez d'abord phpinfo() pour vérifier les informations de la bibliothèque php et vérifiez si la bibliothèque d'extension gd est activée. Si elle n'est pas activée, ouvrez le fichier php.ini et <.>utilisez l'outil de recherche pour trouver extension=php_gd2 .dll, placez simplement le [;] devant extension=php_gd2.dll
La conversion au format jpg nécessite la prise en charge JPEG et png nécessite PNG. Prise en charge. Vérifiez d'abord la conversion correspondante. Si le format prend en charge L'échec de la fonction imagejpeg() peut être un problème avec les autorisations de votre dossier. 🎜>. Vous pouvez d'abord le vérifier avec la fonction function_exist() ImageCreateFromBMP. Est-ce qu'il existe ? ImageCreateFromBMP_private dans l'exemple suivant est utilisé pour remplacer la méthode ImageCreateFromBMP
L'exemple de code est le suivant :
<?php $srcFile ='test.bmp';//需要转换的图片 $info = getimagesize($srcFile); $srcFileExt=$info['mime']; //判断是否是bmp格式 if($srcFileExt=='image/x-ms-bmp'){ $result = changeBMPtoJPG($srcFile); if($result){ echo $result; }else{ echo "转换失败!"; } }else{ echo "该图片不是bmp格式"; } exit; function ImageCreateFromBMP_private($filename) { if (!$f1 = fopen($filename, "rb")) return false; $FILE = unpack("vfile_type/Vfile_size/Vreserved/Vbitmap_offset", fread($f1, 14)); if ($FILE['file_type'] != 19778) return false; $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; $PALETTE = array(); if ($BMP['colors'] < 16777216) { $PALETTE = unpack('V' . $BMP['colors'], fread($f1, $BMP['colors'] * 4)); } $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']) { switch ($BMP['bits_per_pixel']) { case 32: $COLOR = unpack("V", substr($IMG, $P, 3) . $VIDE); break; case 24: $COLOR = unpack("V", substr($IMG, $P, 3) . $VIDE); break; case 16: $COLOR = unpack("n", substr($IMG, $P, 2)); $COLOR[1] = $PALETTE[$COLOR[1] + 1]; break; case 8: $COLOR = unpack("n", $VIDE . substr($IMG, $P, 1)); $COLOR[1] = $PALETTE[$COLOR[1] + 1]; break; case 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]; break; case 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]; break; default: return false; break; } imagesetpixel($res, $X, $Y, $COLOR[1]); $X++; $P += $BMP['bytes_per_pixel']; } $Y--; $P+=$BMP['decal']; } fclose($f1); return $res; } function changeBMPtoJPG($srcPathName){ $srcFile=$srcPathName; $dstFile = str_replace('.bmp', '.jpg', $srcPathName); $photoSize = GetImageSize($srcFile); $pw = $photoSize[0]; $ph = $photoSize[1]; $dstImage = ImageCreateTrueColor($pw, $ph); $white = imagecolorallocate($dstImage, 255, 255, 255); //用 $white 颜色填充图像 imagefill( $dstImage, 0, 0, $white); //读取图片 $srcImage = ImageCreateFromBMP_private($srcFile); //合拼图片 imagecopyresampled($dstImage, $srcImage, 0, 0, 0, 0, $pw, $ph, $pw, $ph); $judge = imagejpeg($dstImage, $dstFile, 90); imagedestroy($dstImage); if($judge){ return $dstFile; }else{ return false; } } ?
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!