将png图片转换为白底的jpg图片,然后进行渐进式处理
采集到页面图片中,一些png的图片过于大了,影响网页的加载速度,需要处理掉其中的png图片,这个小程序将png格式的透明图片处理为jpg格式的图片。具体代码如下
//将png图片转换为白底的jpg图片
function pngToJpg($srcPathName, $delOri=true)
{
$srcFile=$srcPathName;
$srcFileExt=strtolower(trim(substr(strrchr($srcFile,'.'),1)));
if($srcFileExt=='png')
{
$dstFile = str_replace('.png', '.jpg', $srcPathName);
$photoSize = GetImageSize($srcFile);
$pw = $photoSize[0];
$ph = $photoSize[1];
$dstImage = ImageCreateTrueColor($pw, $ph);
$white=imagecolorallocate($dstImage, 255, 255, 255);
imagefill($dstImage, 0, 0, $white);
//读取图片
$srcImage = ImageCreateFromPNG($srcFile);
//合拼图片
imagecopyresampled($dstImage, $srcImage, 0, 0, 0, 0, $pw, $ph, $pw, $ph);
//对图片进行渐进式处理
imageinterlace($dstImage, 1);
imagejpeg($dstImage, $dstFile, 90);
if ($delOri)
{
unlink($srcFile);
}
imagedestroy($srcImage);
}
}