PHP 实现等比压缩图片尺寸和大小实例代码
废话不多说了,直接给大家贴php等比压缩图片大小的相关代码了,具体代码如下所示:
<?php
$im=imagecreatefromjpeg('D:phpplace.jpeg');
resizeImage($im,,,'xinde','.jpg');
functionresizeImage($im,$maxwidth,$maxheight,$name,$filetype)
{
$pic_width=imagesx($im);
$pic_height=imagesy($im);
echo"start-----------------";
if(($maxwidth&&$pic_width>$maxwidth)&&($maxheight&&$pic_height>$maxheight))
{
if($maxwidth&&$pic_width>$maxwidth)
{
$widthratio=$maxwidth/$pic_width;
$resizewidth_tag=true;
}
if($maxheight&&$pic_height>$maxheight)
{
$heightratio=$maxheight/$pic_height;
$resizeheight_tag=true;
}
if($resizewidth_tag&&$resizeheight_tag)
{
if($widthratio<$heightratio)
$ratio=$widthratio;
else
$ratio=$heightratio;
}
if($resizewidth_tag&&!$resizeheight_tag)
$ratio=$widthratio;
if($resizeheight_tag&&!$resizewidth_tag)
$ratio=$heightratio;
$newwidth=$pic_width*$ratio;
$newheight=$pic_height*$ratio;
if(function_exists("imagecopyresampled"))
{
$newim=imagecreatetruecolor($newwidth,$newheight);
imagecopyresampled($newim,$im,,,,,$newwidth,$newheight,$pic_width,$pic_height);
}
else
{
$newim=imagecreate($newwidth,$newheight);
imagecopyresized($newim,$im,,,,,$newwidth,$newheight,$pic_width,$pic_height);
}
$name=$name.$filetype;
imagejpeg($newim,$name);
imagedestroy($newim);
}
else
{
$name=$name.$filetype;
imagejpeg($im,$name);
}
}
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!