图片格式转换PHP代码
原创 52cxy 11-25 15:57 阅读数:390

PHP实现图片格式转换,代码如下:

**
 * 图片格式转换
 * @param string $src 原图片完整路径
 * @param string $dstType 目标图片格式
 * @param string $quality 图片压缩质量
 * @return 0|1 成功返回0 失败返回1
 */
function convertImageFormat($src, $dstType, $quality=85)
{
	$path = '';
	$info = pathinfo($src);
	$srcType = $info['extension'];
	if($srcType == $dstType) return 1;
	if(!in_array($dstType, array('png', 'jpg','gif', 'bmg', 'webp'))) return 1;
	
	$pos = strrpos($src, '/'); 
	if($pos !== false) $path = substr($src, 0, $pos+1) ;
	$dstPath = 	$path . $info['filename'] . '.' .  $dstType;

	if($srcType == 'png')$imgData = imagecreatefromgif($src);
	elseif($srcType == 'jpg') $imgData = imagecreatefromjpeg($src);
	elseif($srcType == 'gif') $imgData = imagecreatefromgif($src);
	elseif($srcType == 'bmp') $imgData = imagecreatefrombmp($src);
	elseif($srcType == 'webp') $imgData = imagecreatefromwebp($src);
	else return 1;	
	
	if($dstType == 'png') ImagePNG($imgData, $dstPath);
	elseif($dstType == 'jpg') imagejpeg($imgData, $dstPath, $quality);
	elseif($dstType == 'gif') imagegif($imgData, $dstPath);
	elseif($dstType == 'bmp') imagebmp($imgData, $dstPath, $quality);
	elseif($dstType == 'webp') imagewebp($imgData, $dstPath, $quality);
	return 0;
}

测试代码:

convertImageFormat('sample.gif', 'jpg', 85);


共0条评论
我要评论