PHP压缩图片函数

php中文网
发布: 2016-07-28 08:28:11
原创
1660人浏览过

/** 图片压缩函数
 * @param $orgin_file 原始图片文件
 * @param $maxwidth 最大宽度
 * @param $maxheight 最大高度
 * @param $name 压缩图片名
 * @param $filetype 图片类型
 */
function resizeImage($orgin_file,$maxwidth,$maxheight,$name,$filetype)
{
	$im = '';
	switch ($filetype){
		case '.jpg':
			$im=imagecreatefromjpeg($orgin_file);
			break;
		case '.png':
			$im=imagecreatefrompng($orgin_file);
			break;
		case '.gif':
			$im=imagecreatefromgif($orgin_file);
			break;
		default:
			$im=imagecreatefromgd($orgin_file);
	}
	$pic_width = imagesx($im);
	$pic_height = imagesy($im);

	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);//PHP系统函数
			imagecopyresampled($newim,$im,0,0,0,0,$newwidth,$newheight,$pic_width,$pic_height);//PHP系统函数
		}
		else
		{
			$newim = imagecreate($newwidth,$newheight);
			imagecopyresized($newim,$im,0,0,0,0,$newwidth,$newheight,$pic_width,$pic_height);
		}

		$name = $name.$filetype;
		switch ($filetype){
			case '.jpg':
				imagejpeg($newim,$name);
				break;
			case '.png':
				imagepng($newim,$name);
				break;
			case '.gif':
				imagegif($newim,$name);
				break;
			default:
				imagegd($newim,$name);
		}

		imagedestroy($newim);
	}
	else
	{
		$name = $name.$filetype;
		switch ($filetype){
			case '.jpg':
				imagejpeg($im,$name);
				break;
			case '.png':
				imagepng($im,$name);
				break;
			case '.gif':
				imagegif($im,$name);
				break;
			default:
				imagegd($im,$name);
		}
	}
}
登录后复制
图片添加水印可以参考“imagecopymerge”函数,手册很详细。

以上就介绍了 PHP压缩图片函数,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号