我们经常会遇到对图像进行裁剪动作,下面这段代码就是裁剪的源码

处理方法是:

1.当原图的宽或高任一比规定的尺寸小,只进行等比缩略处理,

2.当原图的宽与高都比规定尺寸大,先进行等比缩略处理,然后算出居中位置进行裁剪/*

* $o_photo 原图路径

* $d_photo 处理后图片路径

* $width 定义宽

* $height 定义高

* 调用方法 cutphoto("test.jpg","temp.jpg",256,146);

*/

function cutphoto($o_photo, $d_photo, $width, $height) {

$temp_img = p_w_picpathcreatefromjpeg($o_photo);

$o_width = p_w_picpathsx($temp_img); //取得原图宽

$o_height = p_w_picpathsy($temp_img); //取得原图高

//判断处理方法

if ($width > $o_width || $height > $o_height) { //原图宽或高比规定的尺寸小,进行压缩

$newwidth = $o_width;

$newheight = $o_height;

if ($o_width > $width) {

$newwidth = $width;

$newheight = $o_height * $width / $o_width;

}

if ($newheight > $height) {

$newwidth = $newwidth * $height / $newheight;

$newheight = $height;

}

//缩略图片

$new_img = p_w_picpathcreatetruecolor($newwidth, $newheight);

p_w_picpathcopyresampled($new_img, $temp_img, 0, 0, 0, 0, $newwidth, $newheight, $o_width, $o_height);

p_w_picpathjpeg($new_img, $d_photo);

p_w_picpathdestroy($new_img);

} else { //原图宽与高都比规定尺寸大,进行压缩后裁剪

if ($o_height * $width / $o_width > $height) { //先确定width与规定相同,如果height比规定大,则ok

$newwidth = $width;

$newheight = $o_height * $width / $o_width;

$x = 0;

$y = ($newheight - $height) / 2;

} else { //否则确定height与规定相同,width自适应

$newwidth = $o_width * $height / $o_height;

$newheight = $height;

$x = ($newwidth - $width) / 2;

$y = 0;

}

//缩略图片

$new_img = p_w_picpathcreatetruecolor($newwidth, $newheight);

p_w_picpathcopyresampled($new_img, $temp_img, 0, 0, 0, 0, $newwidth, $newheight, $o_width, $o_height);

p_w_picpathjpeg($new_img, $d_photo);

p_w_picpathdestroy($new_img);

$temp_img = p_w_picpathcreatefromjpeg($d_photo);

$o_width = p_w_picpathsx($temp_img); //取得缩略图宽

$o_height = p_w_picpathsy($temp_img); //取得缩略图高

//裁剪图片

$new_imgx = p_w_picpathcreatetruecolor($width, $height);

p_w_picpathcopyresampled($new_imgx, $temp_img, 0, 0, $x, $y, $width, $height, $width, $height);

p_w_picpathjpeg($new_imgx, $d_photo);

p_w_picpathdestroy($new_imgx);

}

}

cutphoto("http://tp3.sinaimg.cn/1700691210/180/1280120708/1", "temp1.jpg", 100, 100);

cutphoto("http://hhcf.tk/img/avatar_big/1318072877.jpg", "temp2.jpg", 100, 100);

php图片制作源码,php进行图片裁剪及生成缩略图程序源代码相关推荐

  1. 微信订单尾号夺宝php源码,H5最新尾号夺宝源码黑色版 订单号尾数夺宝程序源代码...

    ·传统玩法上新增数值玩法,新增大牌玩法,多人共同参与游戏: ·采用微信订单后一位或五位为结果判定依据,公平公正: ·玩家参与游戏收到订单,根据结果排名获得奖励,然后下单者有额外奖励: ·五级分销比例: ...

  2. Android-JNI开发系列《十一》实践-利用Android C源码实现GIF图片的播放

    人间观察 人往往都是多面性的,一个人的时候是一个样子,一群人的时候是另一个样子. 声明 此篇文章只为记录和学习JNI以及了解GIF的解码原理.借鉴了网上的有关gif文章介绍和代码.如果是自己学习,建议 ...

  3. 小程序源码:修复图片音频全新升级带特效喝酒神器小游戏微信小程序

    这是一款全新升级带特效喝酒神器小游戏微信小程序源码 小编发现很多喝酒神器小程序都不带特效和音效的 感觉差了那么一点意思而且感觉也不炫酷 所以小编今天给大家带来一款带特效,音效炫酷的喝酒神器 该款神器由 ...

  4. 小程序源码:修复图片音频全新升级带特效喝酒神器小游戏-多玩法安装简单

    这是一款全新升级带特效喝酒神器小游戏微信小程序源码 小编发现很多喝酒神器小程序都不带特效和音效的 感觉差了那么一点意思而且感觉也不炫酷 所以小编今天给大家带来一款带特效,音效炫酷的喝酒神器 该款神器由 ...

  5. 直播短视频源码,身份证图片识别

    直播短视频源码,进行身份验证时,对上传的身份证图片实现正确识别的相关代码 public class IDCardModel{public string name;public string sex;p ...

  6. 壁纸小程序源码,支持图片搜索,下载,分享,可对接流量主

    很多小伙伴都喜欢给自己的博客站,搞一个小程序,让用户能方便访问.为什么小程序如此受青睐呢?因为小程序与APP的直接区别就是,我能在微信上直接得到我想要东西,比如看文章,下载壁纸,而不用繁琐的去下载AP ...

  7. 成品app直播源码,设置图片圆角和圆形图片

    成品app直播源码,设置图片圆角和圆形图片 在项目根目录下的build.gradle文件中,增加gradle地址: allprojects {repositories {google()jcenter ...

  8. 照片直播 php,php直播源码,iOS 图片去背景

    php直播源码,iOS 图片去背景相关的代码 - (UIImage *)removeBackgroudWithImage: (UIImage *)image{ unsigned char *targe ...

  9. 视频直播源码,插入图片、删除图片、设置图片大小、提取图片

    视频直播源码,插入图片.删除图片.设置图片大小.提取图片 1.插入图片 Document对象有一个add_paragraph()方法插入图片,只需要传入路径或者字节流即可,实际上它也是调用段落的Run ...

最新文章

  1. iOS-ARC_Xcode检测循环引用
  2. hdu 1688 Sightseeing
  3. C#中使用DateTimePicker控件显示修改日期时间
  4. 两轮平衡机器人送披萨,旋转跳跃!
  5. 游戏行业应该如何建设数据中台?
  6. 折扇的保养方法是什么?
  7. VMWare Workstation虚拟机 安装Centos7 图文指南
  8. dubbo接口统一异常处理的两种方式
  9. python控制svn_jenkins+svn+python的使用
  10. KL散度 JS散度 熵
  11. Astah绘制UML图形
  12. 疫情常态下的医院信息化建设新思考
  13. python取数组最后一个元素_python数组最后一个元素
  14. 2012文件共享服务器权限,局域网共享设置权限server2012r2文件共享权限设置方法...
  15. PyTorch以及VGG模型
  16. 四位共阳极数码管显示函数_DS1302,四位共阳极数码管显示时钟,可调时间
  17. 活动回顾|Apache Doris 向量化技术实现与后续规划
  18. 树形选择排序(锦标赛排序)
  19. speedoffice怎样在word文档中画横线
  20. 无线上网卡占用计算机网卡吗,电脑使用无线网卡总是掉线是怎么回事?

热门文章

  1. spring整合kafka项目生产和消费测试结果记录(一)
  2. nginx负载均衡基于ip_hash的session粘帖
  3. showModalDialog 使用详解
  4. 数据管理流程,基础入门简介
  5. 靠加班?靠团建?靠个人?请停止无效努力!
  6. centos7.5 部署flask+nginx+uwsgi+python3
  7. 2019年,ALEXA将会走向何方?
  8. BZOJ3170: [Tjoi2013]松鼠聚会(切比雪夫距离转曼哈顿距离)
  9. 大数据是应对安全形势的进攻武器
  10. cmder 基本配置和使用