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

<?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

时间: 2024-12-28 22:39:38

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

结合UIImageView实现图片的移动和缩放

iphone ipad 开发:结合UIImageView实现图片的移动和缩放 因为种种原因,需要在iphone应用中实现图片查看功能,由于iphone屏幕支持多点触摸,于是是想到用"手势"来实现图片的 实时缩放和移动.借鉴无所不在的internet网络资料之后,终于实现此一功能,过程如下. 一.首先实现原图显示(不缩放) 新建MoveScaleImageView类,继承uiview.用于加载一个UIImage.它有两个主要的成员, 一个UIImage对象用于指定一个内存图片,一个UII

C#图片处理示例(裁剪,缩放,清晰度,水印)

吴剑 2011-02-20 原创文章,转载必需注明出处:http://www.cnblogs.com/wu-jian/ 前言 需求源自项目中的一些应用,比如相册功能,通常用户上传相片后我们都会针对该相片再生成一张缩略图,用于其它页面上的列表显示.随便看一下,大部分网站基本都是将原图等比缩放来生成缩略图.但完美主义者会发现一些问题,比如显示排版时想让相片缩略图列表非常统一.整齐.和美观,比如要求每张缩略图大小固定为120 x 90且不拉伸变形怎么办?再比如用户头像如何让缩略图比原图更清晰?或是如何

iOS基础项目之----图片控制器(控制图片的平移与缩放)

Main.storybord的大致布局如下: 代码部分: ViewController.m: #import "ViewController.h" //枚举 typedef enum{kUpButton=1,kDownButton,kLeftButton,kRightButton,kMinifyButton,kPlusButton,kLeftRotateButton,kRightRotateButton}kTag; @interface ViewController () @prope

php和js对数据库图片进行等比缩放

JS 对某图片的等比缩放 代码 Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&

Android图片查看器(图片可移动、缩放)

要实现图片在手指点击后移动和缩放有好几种方法,在这里是通过onTouch来实现的. 实例代码如下: 首先是在View中有一个ImageView <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_paren

讲解一下iOS图片单指旋转缩放实现方法

最近做一个项目,里边要做图片处理功能,其中就有图片单指旋转,缩放.由于之前还没做过这样的功能,于是乎找了下相关的资料,终于找到了一种好的实现方案.于是就仿照美图秀秀里边贴纸的功能做了一个demo...以下贴一些主要实现代码.... /*****头文件*********/ #import <UIKit/UIKit.h> @interface ImageEditView : UIView // 背景图片 @property (nonatomic, weak, readonly) UIImageVi

图片的等比缩放和Logo水印

/** * 等比缩放函数(以保存的方式实现) * @param string $picname 被缩放的处理图片源 * @param int $maxx 缩放后图片的最大宽度 * @param int $maxy 缩放后图片的最大高度 * @param string $pre 缩放后图片名的前缀名 * @return String 返回后的图片名称(带路径),如a.jpg=>s_a.jpg */ function imageUpdateSize($picname,$maxx=100,$maxy=

php实现图片居中裁剪并缩放

1 <?php 2 /* 3 ** author 李攀 4 ** email [email protected] 5 ** 实现移动开发中,多张图片排列. 6 */ 7 $file = './234.png'; 8 $Image = new image($file); 9 $width = $Image->getImageWidth(); 10 $height = $Image->getImageHeight(); 11 //判断该相片是否长宽相等 12 if($width != $he

iOS -- 图片的移动和缩放

// 图片的移动和缩放#import "ViewController.h"@interface ViewController ()- (IBAction)moveAndBig;- (IBAction)move:(UIButton *)btn;- (IBAction)zoom:(UIButton *)btn;@property (nonatomic, weak) IBOutlet UIButton *head;@end@implementation ViewController- (IB