Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >PhalApi-Image -- 图像处理

PhalApi-Image -- 图像处理

作者头像
喵了个咪233
发布于 2018-03-01 09:28:33
发布于 2018-03-01 09:28:33
99700
代码可运行
举报
运行总次数:0
代码可运行

#PhalApi-Image -- 图像处理

##前言 因为在工作中遇到了需要按照尺寸压缩上传图片,进过了一番寻找发现ThinkPhP图形处理能够满足大部分需求, 所以特地制作成拓展的方式提供出来希望,能给给为小伙伴排忧解难!

注:特别鸣谢@麦当苗儿 zuojiazi@vip.qq.com

附上:

官网地址:http://www.phalapi.net/

开源中国Git地址:http://git.oschina.net/dogstar/PhalApi/tree/release

开源中国拓展Git地址:http://git.oschina.net/dogstar/PhalApi-Library

##1. 安装

配置方式非常简单只需要把拓展下载下来放入Library文件内即可,然后就可以使用如下方法进行实例

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
//初始化
$PhalApi_Image = new Image_Lite(IMAGE_GD, "图片地址");
//以上这句话也可以写成如下 默认使用GD库
$PhalApi_Image = new Image_Lite();
//打开图片
$PhalApi_Image->open('./1.jpg');

##2.基础方法

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$width  = $PhalApi_Image->width(); // 返回图片的宽度
$height = $PhalApi_Image->height(); // 返回图片的高度
$type   = $PhalApi_Image->type(); // 返回图片的类型
$mime   = $PhalApi_Image->mime(); // 返回图片的mime类型
$size   = $PhalApi_Image->size(); // 返回图片的尺寸数组 0 图片宽度 1 图片高度

##3. 压缩裁剪

图片处理最关键的一项功能就是压缩和裁剪,比如用户上传了一套图片2Mb*10张=20MB让我们直接把原图交给用户的时候这个流量几乎承担不起所以就需要使用到图片压缩以及裁剪技术(具体看业务需求)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
/**
 * 可以支持其他类型的缩略图生成,设置包括下列常量或者对应的数字:
 * IMAGE_THUMB_SCALING      //常量,标识缩略图等比例缩放类型
 * IMAGE_THUMB_FILLED       //常量,标识缩略图缩放后填充类型
 * IMAGE_THUMB_CENTER       //常量,标识缩略图居中裁剪类型
 * IMAGE_THUMB_NORTHWEST    //常量,标识缩略图左上角裁剪类型
 * IMAGE_THUMB_SOUTHEAST    //常量,标识缩略图右下角裁剪类型
 * IMAGE_THUMB_FIXED        //常量,标识缩略图固定尺寸缩放类型
 */

// 按照原图的比例生成一个最大为150*150的缩略图并保存为thumb.jpg
$PhalApi_Image->thumb(150, 150, IMAGE_THUMB_SCALING);
$PhalApi_Image->save("thumb.jpg");

//将图片裁剪为400x400并保存为corp.jpg
$PhalApi_Image->crop(400, 400)->save('./crop.jpg');

//将图片裁剪为400x400并保存为corp.jpg  从(100,30)开始裁剪
$PhalApi_Image->crop(400, 400, 100, 30)->save('./crop.jpg');

##4. 图片水印

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
/**
 * water方法的第二个参数表示水印的位置,可以传入下列常量或者对应的数字:
 * IMAGE_WATER_NORTHWEST =   1 ; //左上角水印
 * IMAGE_WATER_NORTH     =   2 ; //上居中水印
 * IMAGE_WATER_NORTHEAST =   3 ; //右上角水印
 * IMAGE_WATER_WEST      =   4 ; //左居中水印
 * IMAGE_WATER_CENTER    =   5 ; //居中水印
 * IMAGE_WATER_EAST      =   6 ; //右居中水印
 * IMAGE_WATER_SOUTHWEST =   7 ; //左下角水印
 * IMAGE_WATER_SOUTH     =   8 ; //下居中水印
 * IMAGE_WATER_SOUTHEAST =   9 ; //右下角水印
 */

//添加图片水印
$PhalApi_Image->open('./1.jpg');
//将图片裁剪为440x440并保存为corp.jpg
$PhalApi_Image->crop(440, 440)->save('./crop.jpg');
// 给裁剪后的图片添加图片水印(水印文件位于./logo.png),位置为右下角,保存为water.gif
$PhalApi_Image->water('./logo.png')->save("water.gif");
// 给原图添加水印并保存为water_o.gif(需要重新打开原图)
$PhalApi_Image->open('./1.jpg')->water('./logo.png')->save("water_o.gif");

//还可以支持水印图片的透明度(0~100,默认值是80),例如:
// 在图片左上角添加水印(水印文件位于./logo.png) 水印图片的透明度为50 并保存为water.jpg
$PhalApi_Image->open('./1.jpg')->water('./logo.png', IMAGE_WATER_NORTHWEST, 50)->save("water.jpg");

##5. 总结

希望此拓展能够给大家带来方便以及实用,拓展支持GIF文件处理,并且支持GD库和Imagick库可以根据需求自行选择!

注:笔者能力有限有说的不对的地方希望大家能够指出,也希望多多交流!

官网QQ交流群:421032344 欢迎大家的加入!

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

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

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

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
python Image 库(PIL)常用操作函数
Python 里面最常用的图像操作库是Image library(PIL),功能上,虽然还不能跟Matlab比较,但是还是比较强大的,写点记录笔记。
十四君
2019/11/24
5.7K0
Nginx使用图片处理模块
Nginx可以编写很多额外的模块,这里我们需要按照能够通过URL响应返回缩放且含图片水印功能的模块。
星哥玩云
2022/07/13
7100
ImageHelper.cs-支持高清缩略图
using System; using System.Collections.Generic; using System.Text; using System.IO; using System.Drawing; using System.Drawing.Drawing2D; using System.Drawing.Imaging; namespace System { /// <summary> /// 图片处理类 /// </summary> public class
KenTalk
2018/09/11
9400
TP入门第九天
1、验证码 TP2.0的使用网上一大堆教程,这里只是简单介绍下,把org目录拷贝到thinkphp目录的lib目录下,然后导入到生成验证码页面即可 TP3.0需要把org文件存放在tp的Extend/Library目录下 function yzm() { &nbsp; import(‘ORG.Util.Image’); Image::buildImageVerify(); } 具体参数可以参考手册进行深刻了解 2、图片添加水印 public function mm(){ import(“ORG.Util.I
苦咖啡
2018/05/07
8920
为WordPress开启Nginx缩略图功能,七牛从此陌路
张戈博客曾分享过不少关于云存储的一些经验技巧,对七牛感兴趣或者遇到相关问题的朋友可以看一看以前的相关文章: 七牛&又拍云 CDN 云存储节省 GET 次数的小技巧 WordPress 简单代码开启七牛 CDN 及集成七牛缩略图的方法 浅谈网站使用七牛云存储之后的 robots.txt 该如何设置? Linux/vps 本地七天循环备份和七牛远程备份脚本 前段时间,百度云加速自动切换到了 3.0,导致我之前的一些规则出现了异常,而且在七牛 cname 记录上再套云加速缓存这种做法也有部分掉了链子,打开出现
张戈
2018/03/23
1.3K0
为WordPress开启Nginx缩略图功能,七牛从此陌路
Python图像处理模块pillow子模块Image用法精要
Image是pillow库中一个非常重要的模块,提供了大量用于图像处理的方法。使用该模块时,首先需要导入。 >>> from PIL import Image 接下来,我们通过几个示例来简单演示一下这个模块的用法。 (1)打开图像文件 >>> im = Image.open('sample.jpg') (2)显示图像 >>> im.show() (3)查看图像信息 >>> im.format #查看图像格式 'JPEG' >>> im.size #查看图像大小,格式为(宽度, 高度) (200, 100
Python小屋屋主
2018/04/16
1.8K0
腾讯云【数据万象】使用指南——基础图片处理(上)
腾讯云数据万象(Cloud Infinite,CI)能够实现对云上的图片、视频、音频、文档等数据进行处理,为客户提供专业一体化的数据处理解决方案,涵盖图片处理、内容审核、内容识别、媒体处理、文档服务等功能。
腾讯云数据万象
2020/08/13
4.2K5
Java生成缩略图,我觉得Thumbnailator挺香!
通过Thumbnailator提供的流畅接口(fluent interface)的方式可以完成复杂的缩略图处理任务,无需访问Image I/O API并通过Graphics2D对象手动操作BufferedImages。
布禾
2021/04/09
4.7K1
Java生成缩略图,我觉得Thumbnailator挺香!
PHPImagine 图像处理库介绍
随着网络的发展,人们对图像的需求越来越高。作为一个PHP开发者,我们在处理图像时经常会遇到一些问题,比如裁剪、缩放、加水印等。这些问题都可以通过使用图像处理库来解决。PHPImagine就是一种优秀的图像处理库。
用户10354340
2023/08/02
2790
thinkphp 添加图片文字水印生成带二维码的推广海报
<?php $image = new \Think\Image(); $bgm='./Public/haibao.png'; //背景图 $poster="./Public/poster/$gid.j
IT工作者
2022/04/23
7690
一个经典实用的PHP图像处理类
本图像处理类可以完成对图片的缩放、加水印和裁剪的功能,支持多种图片类型的处理,缩放时进行优化等。
用户1503405
2021/09/27
5140
python-PS图片
from PIL import ImageColor # pip install pillow # http://pillow-zh-cn.readthedocs.io/zh_CN/latest/installation.html ImageColor.getcolor('red', 'RGB') (255, 0, 0) ImageColor.getcolor('red', 'RGBA') # A 透明度,png图片 (255, 0, 0, 255) # 切换到工作目录,有图片文件的地方 %cd D:\py
py3study
2020/01/08
6120
C#生成缩略图
/**/ /// <summary> /// 生成缩略图 /// </summary> /// <param name="originalImagePath">源图路径(物理路径)</param> /// <param name="thumbnailPath">缩略图路径(物理路径)</param> /// <param name="width">缩略图宽度</param> /// <param name="height">缩略图高度</param> /// <param name="mode">生成缩略图的方式</param> public static void MakeThumbnail(string originalImagePath, string thumbnailPath, int width, int height, string mode,string type) { System.Drawing.Image originalImage = System.Drawing.Image.FromFile(originalImagePath);
jack.yang
2025/04/05
520
thumbor:功能强大的图片处理库
Github地址:https://github.com/thumbor/thumbor
luckpunk
2025/01/18
1520
ImageMagick 的安装及使用
ImageMagick是一款免费开源的图片编辑软件。既可以通过命令行使用,也可以通过C/C++、Perl、Java、PHP、Python或Ruby调用库编程来完成。ImageMagic的主要精力集中在性能,减少bug以及提供稳定的API和ABI上。
全栈程序员站长
2022/09/07
2.9K0
ImageMagick 的安装及使用
服务器端的图像处理 | 请召唤ImageMagick助你解忧
在客户端我们可以用 PhotoShop 等 GUI 工具处理静态图片或者动态 GIF 图片,不过在服务器端对于 WEB 应用程序要处理图片格式转换,缩放裁剪,翻转扭曲,PDF解析等操作, GUI 软件就很难下手了,所以此处需要召唤命令行工具来帮我们完成这些事。
京东技术
2018/09/28
3.4K0
服务器端的图像处理 | 请召唤ImageMagick助你解忧
图像处理库Pillow(PIL)的使用-2(实例+详细注释+图片脚本)
图片的保存主要有两种方法,分别是Image模块中的save方法和convert()方法,下面分别对他们进行介绍:
laity
2025/02/25
2260
图像处理库Pillow(PIL)的使用-2(实例+详细注释+图片脚本)
GraphicsMagick 1.3.23 常用命令
常用命令 benchmark: 测量和报告实用程序命令的性能 batch:在交互式或批处理模式中发出多个命令 convert:转换图像或图像序列,模糊,裁剪,驱除污点,抖动,临近,图片上画图片,加入新图片,生成缩略图等 identify:描述一个或较多图像文件的格式和特性 mogrify:变换一个图像或图像序列,模糊,裁剪,抖动等,Mogrify改写最初的图像文件然后写到一个不同的图像文件 composite:将多个图片组合一起 montage:从不同的图像创建一个复合图像(在一个网格中) compare:
十月梦想
2018/08/29
1.8K0
ThinkPHP文件上传
    在自己写的类中加入一个方法,下面我把我写的一个方法直接拿上来:     /*      * 文件上上传      * */     public function fileUpload(){         //指定文件保存的根目录,我的是在网站根目录下的Uploads中保存,这里依实际改变         $requestRootPath = '/Uploads/';         $uploadRootPath = '.'.$requestRootPath;                 
Sindsun
2018/04/28
3.3K0
C#图片处理示例(裁剪,缩放,清晰度,水印)
原创文章,转载必需注明出处:http://www.cnblogs.com/wu-jian/
跟着阿笨一起玩NET
2018/09/19
2.4K0
C#图片处理示例(裁剪,缩放,清晰度,水印)
相关推荐
python Image 库(PIL)常用操作函数
更多 >
领券
💥开发者 MCP广场重磅上线!
精选全网热门MCP server,让你的AI更好用 🚀
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验