解析php中两种缩放图片的函数,为图片添加水印


Posted in PHP onJune 14, 2013

有两种改变图像大小的方法.
(1):ImageCopyResized() 函数在所有GD版本中有效,但其缩放图像的算法比较粗糙.
(2):ImageCopyResampled(),其像素插值算法得到的图像边缘比较平滑.质量较好(但该函数的速度比 ImageCopyResized() 慢).
两个函数的参数是一样的.如下:
ImageCopyResampled(dest,src,dx,dy,sx,sy,dw,dh,sw,sh);
ImageCopyResized(dest,src,dx,dy,sx,sy,dw,dh,sw,sh
);
它们两个都是从原图像(source)中抓取特定位置(sx,sy)复制图像qu区域到目标t 图像(destination)的特定位置(dx,dy)。另外dw,dh指定复制的图像区域在目标图像上的大小,sw,sh指定从原图像复制的图像区域 的大小。如果有ps经验的话,就相当于在原图像选择一块区域,剪切移动到目的图像上,同时有拉伸或缩小的操作。
例一:
(本例子是将图片按原大小的4/1的大小显示)

<?php
// 指定文件路径和缩放比例
$filename = 'test.jpg';
$percent = 0.5;
// 指定头文件Content typezhi值
header('Content-type: image/jpeg');
// 获取图片的宽高
list($width, $height) = getimagesize($filename);
$newwidth = $width * $percent;
$newheight = $height * $percent;
// 创建一个图片。接收参数分别为宽高,返回生成的资源句柄
$thumb = imagecreatetruecolor($newwidth, $newheight);
//获取源文件资源句柄。接收参数为图片路径,返回句柄
$source = imagecreatefromjpeg($filename);
// 将源文件剪切全部域并缩小放到目标图片上。前两个为资源句柄
imagecopyresampled($thumb, $source, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);
// 输出给浏览器
imagejpeg($thumb);
?>

推荐一个简单实用的缩放图片工具 SimpleImage,参考http://www.white-hat-web-design.co.uk/blog/resizing-images-with-php/
使用方法:
<?php
   include('SimpleImage.php');
   $image = new SimpleImage();
   $image->load('picture.jpg');
   $image->resize(250,400);
   $image->save('picture2.jpg');?>
设定宽度,等比例缩放
<?php
   include('SimpleImage.php');
   $image = new SimpleImage();
   $image->load('picture.jpg');
   $image->resizeToWidth(250);
   $image->save('picture2.jpg');?>
设定高度,等比例缩放
<?php
   include('SimpleImage.php');
   $image = new SimpleImage();
   $image->load('picture.jpg');
   $image->resizeToHeight(500);
   $image->save('picture2.jpg');
   $image->resizeToHeight(200);
   $image->save('picture3.jpg');?>
按比例,缩放至50%
<?php
   include('SimpleImage.php');
   $image = new SimpleImage();
   $image->load('picture.jpg');
   $image->scale(50);
   $image->save('picture2.jpg');?>
缩放后直接输出到屏幕
<?php
   header('Content-Type: image/jpeg');
   include('SimpleImage.php');
   $image = new SimpleImage();
   $image->load('picture.jpg');
   $image->resizeToWidth(150);
   $image->output();?>

SimpleImage.php 源码请轻点文章开头链接,到那下载
--------------------------------------------------------------------------------
为图片加上水印
<?php
  $source=imagecreatefromjpeg('E:/image/guide_pic.jpg');
  $thumb=imagecreatefromjpeg('E:/image/l.JPG');
//取得图片的宽度,高度,类型
  list($width,$height,$mine)=getimagesize('E:/image/guide_pic.jpg');
  imagecopymerge ($source,$thumb,$width-124,$height-150,0,0,88,73,70);
//生成图片
  imagejpeg($source,'E:/image/logo.jpg');
?>

PHP 相关文章推荐
PHP的开发框架的现状和展望
Mar 16 PHP
PHP 数据库树的遍历方法
Feb 06 PHP
PHP 时间转换Unix时间戳代码
Jan 22 PHP
PHP中输出转义JavaScript代码的实现代码
Apr 22 PHP
php采用curl实现伪造IP来源的方法
Nov 21 PHP
php读取flash文件高宽帧数背景颜色的方法
Jan 06 PHP
php ImageMagick windows下安装教程
Jan 26 PHP
PHP strtotime函数用法、实现原理和源码分析
Feb 04 PHP
cakephp打印sql语句的方法
Feb 13 PHP
smarty高级特性之对象的使用方法
Dec 25 PHP
laravel利用中间件做防非法登录和权限控制示例
Oct 21 PHP
Thinkphp 框架基础之入口文件功能、定义与用法分析
Apr 27 PHP
PHP操作Memcache实例介绍
Jun 14 #PHP
解析PHP处理换行符的问题 \r\n
Jun 13 #PHP
基于PHP5魔术常量与魔术方法的详解
Jun 13 #PHP
基于PHPExcel的常用方法总结
Jun 13 #PHP
深入PHP FTP类的详解
Jun 13 #PHP
PHP代码审核的详细介绍
Jun 13 #PHP
PHP设计模式之调解者模式的深入解析
Jun 13 #PHP
You might like
ajax+php打造进度条 readyState各状态
2010/03/20 PHP
『PHP』PHP截断函数mb_substr()使用介绍
2013/04/22 PHP
PHP中把对象数组转换成普通数组的方法
2015/07/10 PHP
针对多用户实现头像上传功能PHP代码 适用于登陆页面制作
2016/08/17 PHP
PHP 芝麻信用接入的注意事项
2016/12/01 PHP
PHP实现链表的定义与反转功能示例
2018/06/09 PHP
node.js中的fs.stat方法使用说明
2014/12/16 Javascript
Underscore.js常用方法总结
2015/02/28 Javascript
基于javascript实现最简单选项卡切换
2017/02/01 Javascript
vue如何实现observer和watcher源码解析
2017/03/09 Javascript
Vue.js学习记录之在元素与template中使用v-if指令实例
2017/06/27 Javascript
详解javascript中的babel到底是什么
2018/06/21 Javascript
详解mpvue中小程序自定义导航组件开发指南
2019/02/11 Javascript
layui数据表格实现重载数据表格功能(搜索功能)
2019/07/27 Javascript
scrapyd schedule.json setting 传入多个值问题
2019/08/07 Javascript
es6函数之尾递归用法实例分析
2020/04/25 Javascript
关于angular 8.1使用过程中的一些记录
2020/11/25 Javascript
python读取json文件并将数据插入到mongodb的方法
2015/03/23 Python
Flask框架的学习指南之用户登录管理
2016/11/20 Python
python+matplotlib绘制3D条形图实例代码
2018/01/17 Python
python爬取足球直播吧五大联赛积分榜
2018/06/13 Python
对web.py设置favicon.ico的方法详解
2018/12/04 Python
Python Scrapy框架:通用爬虫之CrawlSpider用法简单示例
2020/04/11 Python
PythonPC客户端自动化实现原理(pywinauto)
2020/05/28 Python
Python基于BeautifulSoup爬取京东商品信息
2020/06/01 Python
美国折扣香水网站:The Perfume Spot
2020/12/12 全球购物
单位消防安全责任书
2014/07/23 职场文书
高职教师先进事迹材料
2014/08/24 职场文书
科学发展观演讲稿
2014/09/11 职场文书
2014年党的群众路线教育实践活动整改措施(个人版)
2014/09/25 职场文书
教师学习党的群众路线教育实践活动心得体会
2014/10/31 职场文书
社区学习党的群众路线教育实践活动心得体会
2014/11/03 职场文书
教育读书笔记
2015/07/02 职场文书
入党积极分子培养联系人意见
2015/08/12 职场文书
Python中快速掌握Data Frame的常用操作
2021/03/31 Python
Mysql Innodb存储引擎之索引与算法
2022/02/15 MySQL