PHP图片的等比缩放和增加Logo水印详细代码和注释

php中文网
发布: 2016-06-23 13:46:22
原创
1211人浏览过

<?php//PHP图片的等比缩放和增加Logo水印   --->百度 “美日汇”/** * 等比缩放函数(以保存的方式实现) * @param string $picName 被缩放的处理图片源 * @param int $maxx 缩放后图片的最大宽度 * @param int $maxy 缩放后图片的最大高度 * @param string $pre 缩放后图片名的前缀名 * @return String 返回后的图片名称(带路径),如a.jpg=>s_a.jpg */function imageNewageUpdateSize($picName,$maxx=100,$maxy=100,$pre="s_"){	$imageNewageInfo = getimageNewageSize($picName); //获取图片的基本信息		$w = $imageNewageInfo[0];//获取宽度	$h = $imageNewageInfo[1];//获取高度		//获取图片的类型并为此创建对应图片资源		switch($imageNewageInfo[2]){		case 1: //gif			$imageNew = imageNewagecreatefromgif($picName);			break;		case 2: //jpg			$imageNew = imageNewagecreatefromjpeg($picName);			break;		case 3: //png			$imageNew = imageNewagecreatefrompng($picName);			break;		default:			die("图片类型错误!");	}		//计算缩放比例	if(($maxx/$w)>($maxy/$h)){		$b = $maxy/$h;	}else{		$b = $maxx/$w;	}		//计算出缩放后的尺寸	$nw = floor($w*$b);	$nh = floor($h*$b);		//创建一个新的图像源(目标图像)	$nimageNew = imageNewagecreatetruecolor($nw,$nh);			//执行等比缩放	imageNewagecopyresampled($nimageNew,$imageNew,0,0,0,0,$nw,$nh,$w,$h);		//输出图像(根据源图像的类型,输出为对应的类型)	$picimageNewageInfo = pathimageNewageInfo($picName);//解析源图像的名字和路径信息	$newpicName= $picimageNewageInfo["dirname"]."/".$pre.$picimageNewageInfo["basename"];	switch($imageNewageInfo[2]){		case 1:			imageNewagegif($nimageNew,$newpicName);			break;		case 2:			imageNewagejpeg($nimageNew,$newpicName);			break;		case 3:			imageNewagepng($nimageNew,$newpicName);			break;	}	//释放图片资源	imageNewagedestroy($imageNew);	imageNewagedestroy($nimageNew);	//返回结果	return $newpicName;}//调用echo imageNewageUpdateSize("./imageNewages/leyangjun.jpg",400,400,"ss_");  //你自己要添加的图片/** * 为一张图片添加上一个logo图片水印(以保存的方式实现) * @param string $picName 被处理图片源 * @param string $logo 水印图片 * @param string $pre 处理后图片名的前缀名 * @return String 返回后的图片名称(带路径),如a.jpg=>n_a.jpg */function imageNewageUpdateLogo($picName,$logo,$pre="n_"){	$picNameimageNewageInfo = getimageNewageSize($picName); //获取图片源的基本信息	$logoimageNewageInfo = getimageNewageSize($logo); //获取logo图片的基本信息	//var_dump($logoimageNewageInfo);	//根据图片类型创建出对应的图片源	switch($picNameimageNewageInfo[2]){		case 1: //gif			$imageNew = imageNewagecreatefromgif($picName);			break;		case 2: //jpg			$imageNew = imageNewagecreatefromjpeg($picName);			break;		case 3: //png			$imageNew = imageNewagecreatefrompng($picName);			break;		default:			die("图片类型错误!");	}	//根据logo图片类型创建出对应的图片源	switch($logoimageNewageInfo[2]){		case 1: //gif			$logoimageNew = imageNewagecreatefromgif($logo);			break;		case 2: //jpg			$logoimageNew = imageNewagecreatefromjpeg($logo);			break;		case 3: //png			$logoimageNew = imageNewagecreatefrompng($logo);			break;		default:			die("logo图片类型错误!");	}		//执行图片水印处理                    源图的高-logo图的高       源图的宽-logo图的宽	imageNewagecopyresampled($imageNew,$logoimageNew,$picNameimageNewageInfo[0]-$logoimageNewageInfo[0],$picNameimageNewageInfo[1]-$logoimageNewageInfo[1],0,0,$logoimageNewageInfo[0],$logoimageNewageInfo[1],$logoimageNewageInfo[0],$logoimageNewageInfo[1]);		//输出图像(根据源图像的类型,输出为对应的类型)	$picimageNewageInfo = pathimageNewageInfo($picName);//解析源图像的名字和路径信息	$newpicName= $picimageNewageInfo["dirname"]."/".$pre.$picimageNewageInfo["basename"];	switch($picNameimageNewageInfo[2]){		case 1:			imageNewagegif($imageNew,$newpicName);			break;		case 2:			imageNewagejpeg($imageNew,$newpicName);			break;		case 3:			imageNewagepng($imageNew,$newpicName);			break;	}	//释放图片资源	imageNewagedestroy($imageNew);	imageNewagedestroy($logoimageNew);	//返回结果	return $newpicName;}//测试//echo imageNewageUpdateLogo("./imageNewages/leyangjun.jpg","./imageNewages/logo.png");  //对应添加你的图片,和你的logo水印图片 OK
登录后复制

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号