PHP截取指定图片大小的方法
作者:shichen2014 发布时间:2023-09-11 13:20:21
本文实例讲述了PHP截取指定图片大小的方法。分享给大家供大家参考。具体分析如下:
imagecopyresampled($newim, $im, 0, 0, 7, 174, 120, 42, $new_img_width, $new_img_height); // 原始尺寸 120 x 42
imagecopyresampled($newim, $im, 0, 0, 100, 30, 500, 500, $new_img_width, $new_img_height); // 图截出来后放到 500 x 500
imagecopyresampled($newim, $im, 0, 0, 100, 30, 10, 10, $new_img_width, $new_img_height); // 图截出来后缩小到 10 x 10
大概主要是这个 function 的操作而已,主要只看第一个原尺寸的那个参数对照就好了,下述是 imagecopyresampled 的参数,一个一个对照如下:
$newim: imagecreate($new_img_width, $new_img_height); 建立的空白图层
$im: imagecreatefromjpeg($filename); 把原本的图片读进来
0: 输出图要从哪边开始的 x 点(图片输出的点是可以指定的,没指定到的位置就会是你 create 的图层颜色或图)
0: 输出图要从哪边开始的 y 点(同上)
7: 原始图要从哪边开始 x (指定要从哪个 x 点开始截取)
174: 原始图要从哪边开始 y (指定要从哪个点开始截取,截取区块大小由下面两个参数去定)
120: 截图要截多大 width ,从上面的指定的位置,开始截取 120px 宽(如果要放大缩小也是由此处决定)
42: 截图要截多大 height ,从上面的指定的位置,开始截取 42px 高(如果要放大缩小也是由此处决定)
$new_img_width: 这是新的图,从上面写的第二组参数 0, 0 ,要开始画多宽(在此程式目前是指定截图的大小)
$new_img_height: 这是新的图,从上面的第二组参数 0, 0 ,要开始画多高(在此程式目前是指定截图的大小)
PHP实例代码如下:
header("Content-type: image/jpeg");
$filename = 'book_rabbit_rule.jpg';
/* 读取图档 */
$im = imagecreatefromjpeg($filename);
/* 图片要截多少, 长/宽 */
$new_img_width = 120;
$new_img_height = 42;
/* 先建立一个 新的空白图档 */
$newim = imagecreate($new_img_width, $new_img_height);
// 输出图要从哪边开始 x, y ,原始图要从哪边开始 x, y ,要画多大 x, y(resize) , 要抓多大 x, y
imagecopyresampled($newim, $im, 0, 0, 7, 174, 120, 42, $new_img_width, $new_img_height);
/* 放大成 500 x 500 的图 */
// imagecopyresampled($newim, $im, 0, 0, 100, 30, 500, 500, $new_img_width, $new_img_height);
/* 将图印出来 */
imagejpeg($newim);
/* 资源回收 */
imagedestroy($newim);
imagedestroy($im);
希望本文所述对大家的PHP程序设计有所帮助。
猜你喜欢
- 磁盘突然报错使用率过大,排查原因,发现mysql的binlog文件占用过大命令ls -l -hmysql-binlog是MySQL数据库的二
- linspace生成有序列表,重点在数据范围与数据个数上linspace(0,1,11),即从0到1闭区间,划分为11个数据点>>
- 中间件Django中的中间件是一个轻量级、底层的插件系统,可以介入Django的请求和响应处理过程,修改Django的输入或输出。中间件的设
- 对于一个内容页的文章来说,如果这个文章内容过长或是其中有分类(排行),那么进行分页阅读无疑是最好的选择。如果一个文章内容不涉及分类,比如小说
- Pyppeteer简介Puppeteer 是 Google 基于 Node.js 开发的一个工具,有了它我们可以通过 JavaScript
- 组件值校验,即在组件值变化时判断是否满足校验逻辑,若不满足校验逻辑,可以拿到校验错误信息进行错误提示或其他逻辑处理。声明 valueVali
- mysql安装启动两种方法如下所示:方法一(简单版):1.cmd进入mysql安装的bin目录:mysqld.exe –install2.n
- 本文实例讲述了PHP会话控制技巧。分享给大家供大家参考,具体如下:Demo1.php<form method="get&qu
- MySQL事务处理(TransAction)思考了很久,决定写一篇关于mysql事务(transaction)的博客,一来嘛,因为最近在复习
- 在存储过程中,请问如何判断所指定表的字段的类型?由于表和视图的每一列在SYSCOLUMNS表中都有详细资料,所以,我们只管从中取用来即可,很
- 概述条件语句需要开发者通过指定一个或多个条件并通过测试条件是否为 true 来决定是否执行指定语句并在条件为 false 的情况再执行另外的
- 第一种 使用pygame模块 pygame.mixer.init() pygame.mixer.music.load
- 1.背景在逆向Dephi程序时,会出现Dede软件可以看到函数的函数名,但是IDA逆向的时候看不到,为了解决这个问题,可以通过以下的方法来实
- 一、简介Pickle模块实现了基本的数据序列化与反序列化操作。通过序列化操作,我们可以将程序中运行的对象信息转化为字节流保存到文件中去,永久
- pycharm程序界面一般有很多子窗口,如图1所示。pycharm项目视图-运行窗口图1 Pycharm子窗口如果你发现某些子窗口不见了,图
- MySql 在修改表结构的时候可能会中断产品的正常运行影响用户体验,甚至更坏的结果,丢失数据。不是所有的数据库管理员、程序员、系统管理员都非
- 目录1、前言2、详解1、前言使用中如果我们想把python可识别对象的dict类型的数据通过str类型写入文件或者存入变量中就需要用到dum
- 继上一篇中间表的数据是动态的,图表展示的数据才比较准确。这里用到一个新的模块Djcelery,安装配置步骤如下:1.安装redis==2.1
- isset($var); //为false 没有定义没有定义为假 $var = ''
- 本文实例讲述了js网页滚动条滚动事件用法。分享给大家供大家参考。具体分析如下:在做js返回顶部的效果时,要监听网页滚动条滚动事件,这个事件就