Loading [MathJax]/jax/input/TeX/jax.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >PHP 图像居中裁剪函数

PHP 图像居中裁剪函数

作者头像
用户8099761
发布于 2023-05-11 07:43:26
发布于 2023-05-11 07:43:26
1.5K00
代码可运行
举报
文章被收录于专栏:私人订制私人订制
运行总次数:0
代码可运行

使用方法:image_center_crop(source,width, height,target);

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
/**
 * 居中裁剪图片
 * @param string $source [原图路径]
 * @param int $width [设置宽度]
 * @param int $height [设置高度]
 * @param string $target [目标路径]
 * @return bool [裁剪结果]
 */
function image_center_crop($source, $width, $height, $target)
{
    if (!file_exists($source)) return false;
    /* 根据类型载入图像 */
    switch (exif_imagetype($source)) {
        case IMAGETYPE_JPEG:
            $image = imagecreatefromjpeg($source);
            break;
        case IMAGETYPE_PNG:
            $image = imagecreatefrompng($source);
            break;
        case IMAGETYPE_GIF:
            $image = imagecreatefromgif($source);
            break;
    }
    if (!isset($image)) return false;
    /* 获取图像尺寸信息 */
    $target_w = $width;
    $target_h = $height;
    $source_w = imagesx($image);
    $source_h = imagesy($image);
    /* 计算裁剪宽度和高度 */
    $judge = (($source_w / $source_h) > ($target_w / $target_h));
    $resize_w = $judge ? ($source_w * $target_h) / $source_h : $target_w;
    $resize_h = !$judge ? ($source_h * $target_w) / $source_w : $target_h;
    $start_x = $judge ? ($resize_w - $target_w) / 2 : 0;
    $start_y = !$judge ? ($resize_h - $target_h) / 2 : 0;
    /* 绘制居中缩放图像 */
    $resize_img = imagecreatetruecolor($resize_w, $resize_h);
    imagecopyresampled($resize_img, $image, 0, 0, 0, 0, $resize_w, $resize_h, $source_w, $source_h);
    $target_img = imagecreatetruecolor($target_w, $target_h);
    imagecopy($target_img, $resize_img, 0, 0, $start_x, $start_y, $resize_w, $resize_h);
    /* 将图片保存至文件 */
    if (!file_exists(dirname($target))) mkdir(dirname($target), 0777, true);
    switch (exif_imagetype($source)) {
        case IMAGETYPE_JPEG:
            imagejpeg($target_img, $target);
            break;
        case IMAGETYPE_PNG:
            imagepng($target_img, $target);
            break;
        case IMAGETYPE_GIF:
            imagegif($target_img, $target);
            break;
    }
    return boolval(file_exists($target));
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-11-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
php如何实现图片格式转换
开发过程中总会遇到一些需求需要对图片格式进行转换。比如 gif转png,jpg转png
超级小可爱
2023/02/20
8230
PHP开发之将jpng的图片转换为png格式
上午遇到了一个需求.就是将小程序生成的码拼接个文字.小程序生成二维码也好.小程序码也罢.这些之前都有接触过.三下五除二就生成了.接下来的工作也是需要进行文字的拼接.
桑先生
2020/02/13
1.6K0
php图像裁剪服务器搭建
在我们的工作的项目中,有时候我们需要显示规定尺寸的图片,虽然可以通过css来控制显示大小。但是如果图片过大,会造成加载的延迟,影响网站整体性能。因此,我们需要一个服务器来帮助我们进行图片的裁剪。流程大致是,首先我们传给服务器原图像和裁剪的尺寸,然后服务器进行裁剪,生成对应的裁剪图片,下次我们再访问相同图像和相同的裁剪尺寸的时候,我们就不需要裁剪,直接进行图片的访问就行。
猿哥
2019/07/15
1.5K0
Upload-labs通关笔记(三)
Upload-labs是一个帮你总结所有类型的上传漏洞的靶场 项目地址:https://github.com/Tj1ngwe1/upload-labs 环境要求 若要自己亲自搭建环境,请按照以下配置环境,方可正常运行每个Pass。 配置项 配置 描述 操作系统 Window or Linux 推荐使用Windows,除了Pass-19必须在linux下,其余Pass都可以在Windows上运行 PHP版本 推荐5.2.17 其他版本可能会导致部分Pass无法突破 PHP组件 php_gd2,php_exif
网络安全自修室
2020/07/22
8200
使用PHP获取图像文件的EXIF信息
在我们拍的照片以及各类图像文件中,其实还保存着一些信息是无法直观看到的,比如手机拍照时会有的位置信息,图片的类型、大小等,这些信息就称为 EXIF 信息。一般 JPG 、 TIFF 这类的图片文件都会有这样的信息。EXIF 其实就是专门为这种数码照片所定制的,专门用于记录数码照片的属性信息和拍摄数据的,最初由日本制定。这个其实很好理解,日本对相机行业基本是垄断般的存在,所以这类的标准当然就是由他们制定啦!
硬核项目经理
2021/08/06
1.6K0
PHP 图片上传与缩略图生成详解
在做网站开发的时候,我们经常会碰到让用户上传图片的需求,比如让用户上传 头像,给文章添加 封面图,或者是电商网站的 商品展示图片。这些图片不仅要存储在服务器上,还需要进行一些处理,比如 限制图片大小、检查格式,最常见的就是 生成缩略图,这样可以让网站加载更快,用户体验更好。
繁依Fanyi
2025/01/30
1370
Upload-labs&Upload Bypass Summarize
暑假闲着也是闲着,去年这个时候刷完了 sqli-labs,今年想着来刷一下 upload-labs 而这次重点不在于题解,而在于总结与归纳 首先我们得明确一点,即上传的过程
安恒网络空间安全讲武堂
2018/12/26
1.5K1
类库封装-PHP图片处理工具
Base64生成图片文件,自动解析格式 /** * @desc Base64生成图片文件,自动解析格式 * @param $base64 可以转成图片的base64字符串 * @param $path 绝对路径 * @param $filename 生成的文件名 * @return array 返回的数据,当返回status==1时,代表base64生成图片成功,其他则表示失败 */ public function base64ToImag
程序猿的栖息地
2022/04/29
6580
在线涂改图片 php,php网站怎么修改图片[通俗易懂]
$db = mysql_connect(‘localhost’,’root’,’Ctrip07185419′) or die(‘can not connect to database’);
全栈程序员站长
2022/10/04
4.6K0
在线涂改图片 php,php网站怎么修改图片[通俗易懂]
PHP自动裁剪图片输出来实现适应不同尺寸的显示
V站笔记 原图 200*200:http://tv1314.com/content/uploadfile/201703/0eac1488598225.jpg?param=200y200 400*40
V站CEO-西顾
2018/06/10
2.4K0
PHP自动裁剪图片输出来实现适应不同尺寸的显示
自动裁剪人脸:简化你的数字人素材准备
在做数字人时,需要对采集的数据进行预处理,然后才能进行模型训练, 预处理常用的操作有:去背景 音频重采样 视频裁剪 音频特征提取等等,今天我们来分享一个自动化脚本: 对原图/视频进行人脸检测并根据目标尺寸以人脸为中心进行裁剪.
音视频开发之旅
2024/03/10
2420
自动裁剪人脸:简化你的数字人素材准备
一起学习PHP中GD库的使用(一)
又到了一个大家非常熟悉的库了,对于图像图形的处理来说,GD 库是 PHPer 们绕不过去的一道坎。从很早很早的 CMS 或者 Discuz 时代,各类开源软件在安装的时候就会明确地指出 GD 库是它们必备的一个扩展。当然,在现在的 PHP 版本中,相信大家也不会在编译的时候忽略掉这个库。不管你是为图片加水印、生成缩略图还是制作验证码图片,都离不开 GD 库的身影。
硬核项目经理
2021/08/06
1.2K0
看世界论坛个人主页头像设置逻辑
这里在用户注册会员时,我会在表单中加入头像的上传功能,用户可以选择性上传头像,但我没有标注可以不上传。这样的话,不明所以的人都会选择直接上传,以免后期让用户再去上传会让人疲倦。
半夜喝可乐
2023/11/08
2881
看世界论坛个人主页头像设置逻辑
图像任意裁剪
算法:图像任意裁剪是将图像裁剪成若干任意大小图像。 文献:LHL, 李红林. (2011). 基于投影法实现矩形窗口的任意曲线裁剪 random clipping of curves in rectangular windows based on the projection method. 云南民族大学学报:自然科学版, 20(2). Kurtz, B. D. , & Claiborne, S. J. . (1999). Efficient method for clipping numerous objects against an arbitrary clipping path. US. 链接:https://www.gaitubao.com/
裴来凡
2022/05/29
2.1K0
图像任意裁剪
Upload-labs 通关学习笔记
使用障眼法,将PHP文件修改图像格式后直接上传;使用burp拦截该数据包,修改文件格式(后缀名)
Mirror王宇阳
2020/11/13
4.3K0
Upload-labs 通关学习笔记
一个经典实用的PHP图像处理类
本图像处理类可以完成对图片的缩放、加水印和裁剪的功能,支持多种图片类型的处理,缩放时进行优化等。
用户1503405
2021/09/27
5020
学会这些Python美图技巧,就等着女朋友夸你吧
Python中有许多用于图像处理的库,像是Pillow,或者是OpenCV。而很多时候感觉学完了这些图像处理模块没有什么用,其实只是你不知道怎么用罢了。今天就给大家带了一些美图技巧,让你的图美翻全场,朋友圈赞不绝口,女朋友也夸你,富贵你好厉害啊!
ZackSock
2020/05/18
5490
学会这些Python美图技巧,就等着女朋友夸你吧
Upload-labs(1-15)详解
想到这也就知道是绕过方法中的黑名单绕过了,上面的不让上传,想到了可以上传.php5的文件,除了这个还有.phtml.phps .pht 但是要想上传后能执行,要在自己的apache的httpd.conf文件写入
ly0n
2020/11/04
7.5K0
Upload-labs(1-15)详解
PHP头像九宫格合并 案例
唔,有一些东西需要随机头像! 比如一些聊天网站需要随机展现头像! 9宫格的平铺头像! 每次都会展现不一样的头像! 效果: 案例如下: <?php /** * 图片合并 **/ $p
墨渊
2018/05/09
1.7K4
PHP头像九宫格合并 案例
HTML5 拖拽上传图片实例
  因为标题写的是实例,所以本次就不做讲解了,因为这个实例我也算是东拼西凑整出来的,参考了大概5、6款拖拽上传的插件和demo,然后把其中好的地方挑出来,最后就成了这么一个实例,一起来看下吧(地址不能保证长久有效,如果失效请在文章最后点击demo下载):http://hoorayos.caifutang.com/dropupload.html
胡尐睿丶
2022/03/23
2.7K0
HTML5 拖拽上传图片实例
相关推荐
php如何实现图片格式转换
更多 >
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验