php图片制作源码,php进行图片裁剪及生成缩略图程序源代码
我们经常会遇到对图像进行裁剪动作,下面这段代码就是裁剪的源码
处理方法是:
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进行图片裁剪及生成缩略图程序源代码相关推荐
- 微信订单尾号夺宝php源码,H5最新尾号夺宝源码黑色版 订单号尾数夺宝程序源代码...
·传统玩法上新增数值玩法,新增大牌玩法,多人共同参与游戏: ·采用微信订单后一位或五位为结果判定依据,公平公正: ·玩家参与游戏收到订单,根据结果排名获得奖励,然后下单者有额外奖励: ·五级分销比例: ...
- Android-JNI开发系列《十一》实践-利用Android C源码实现GIF图片的播放
人间观察 人往往都是多面性的,一个人的时候是一个样子,一群人的时候是另一个样子. 声明 此篇文章只为记录和学习JNI以及了解GIF的解码原理.借鉴了网上的有关gif文章介绍和代码.如果是自己学习,建议 ...
- 小程序源码:修复图片音频全新升级带特效喝酒神器小游戏微信小程序
这是一款全新升级带特效喝酒神器小游戏微信小程序源码 小编发现很多喝酒神器小程序都不带特效和音效的 感觉差了那么一点意思而且感觉也不炫酷 所以小编今天给大家带来一款带特效,音效炫酷的喝酒神器 该款神器由 ...
- 小程序源码:修复图片音频全新升级带特效喝酒神器小游戏-多玩法安装简单
这是一款全新升级带特效喝酒神器小游戏微信小程序源码 小编发现很多喝酒神器小程序都不带特效和音效的 感觉差了那么一点意思而且感觉也不炫酷 所以小编今天给大家带来一款带特效,音效炫酷的喝酒神器 该款神器由 ...
- 直播短视频源码,身份证图片识别
直播短视频源码,进行身份验证时,对上传的身份证图片实现正确识别的相关代码 public class IDCardModel{public string name;public string sex;p ...
- 壁纸小程序源码,支持图片搜索,下载,分享,可对接流量主
很多小伙伴都喜欢给自己的博客站,搞一个小程序,让用户能方便访问.为什么小程序如此受青睐呢?因为小程序与APP的直接区别就是,我能在微信上直接得到我想要东西,比如看文章,下载壁纸,而不用繁琐的去下载AP ...
- 成品app直播源码,设置图片圆角和圆形图片
成品app直播源码,设置图片圆角和圆形图片 在项目根目录下的build.gradle文件中,增加gradle地址: allprojects {repositories {google()jcenter ...
- 照片直播 php,php直播源码,iOS 图片去背景
php直播源码,iOS 图片去背景相关的代码 - (UIImage *)removeBackgroudWithImage: (UIImage *)image{ unsigned char *targe ...
- 视频直播源码,插入图片、删除图片、设置图片大小、提取图片
视频直播源码,插入图片.删除图片.设置图片大小.提取图片 1.插入图片 Document对象有一个add_paragraph()方法插入图片,只需要传入路径或者字节流即可,实际上它也是调用段落的Run ...
最新文章
- iOS-ARC_Xcode检测循环引用
- hdu 1688 Sightseeing
- C#中使用DateTimePicker控件显示修改日期时间
- 两轮平衡机器人送披萨,旋转跳跃!
- 游戏行业应该如何建设数据中台?
- 折扇的保养方法是什么?
- VMWare Workstation虚拟机 安装Centos7 图文指南
- dubbo接口统一异常处理的两种方式
- python控制svn_jenkins+svn+python的使用
- KL散度 JS散度 熵
- Astah绘制UML图形
- 疫情常态下的医院信息化建设新思考
- python取数组最后一个元素_python数组最后一个元素
- 2012文件共享服务器权限,局域网共享设置权限server2012r2文件共享权限设置方法...
- PyTorch以及VGG模型
- 四位共阳极数码管显示函数_DS1302,四位共阳极数码管显示时钟,可调时间
- 活动回顾|Apache Doris 向量化技术实现与后续规划
- 树形选择排序(锦标赛排序)
- speedoffice怎样在word文档中画横线
- 无线上网卡占用计算机网卡吗,电脑使用无线网卡总是掉线是怎么回事?