PhalApi-Image -- 图像处理

简介:

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文件内即可,然后就可以使用如下方法进行实例

//初始化
$PhalApi_Image = new Image_Lite(IMAGE_GD, "图片地址");
//以上这句话也可以写成如下 默认使用GD库
$PhalApi_Image = new Image_Lite();
//打开图片
$PhalApi_Image->open('./1.jpg');

2.基础方法

$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让我们直接把原图交给用户的时候这个流量几乎承担不起所以就需要使用到图片压缩以及裁剪技术(具体看业务需求)

/**
 * 可以支持其他类型的缩略图生成,设置包括下列常量或者对应的数字:
 * 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. 图片水印

/**
 * 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库可以根据需求自行选择!

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

相关文章
|
11天前
|
算法 计算机视觉 iOS开发
iOS 实时图像处理技术:Core Image 框架的应用
【4月更文挑战第8天】 在移动设备上实现高效的图像处理功能,对于提升用户体验和扩展应用程序能力至关重要。苹果公司的iOS平台提供了强大的Core Image框架,它允许开发者以高效和直观的方式执行复杂的图像处理任务。本文将深入探讨Core Image框架的关键特性,并通过实例演示如何在iOS应用中集成实时图像处理功能,不仅提高性能,同时保持了电池寿命的优化。我们将重点讨论面部识别、滤镜应用和性能优化等关键技术点,为读者提供一份全面的iOS图像处理指南。
|
11天前
|
算法 计算机视觉 iOS开发
iOS 实时图像处理技术:使用 Core Image 和 Metal 进行高效滤镜应用
【4月更文挑战第8天】 在移动设备上实现高效的图像处理功能是现代应用程序开发中的一个关键需求。苹果的iOS平台提供了Core Image和Metal两大技术,它们为开发者提供了强大的工具来实现复杂的图像处理任务。本文将探讨如何使用Core Image进行基础图像处理,并结合Metal的性能优势,开发出一个自定义的实时图像滤镜。我们将通过创建一个能够动态调整参数并且具有实时反馈效果的滤镜来演示这一过程。
|
3月前
|
小程序 搜索推荐
uniapp中如何使用image图片
uniapp中如何使用image图片
423 0
|
4月前
|
存储 数据可视化 定位技术
Google Earth Engine谷歌地球引擎GEE中ee.Image格式单张栅格图像数据基本处理操作
Google Earth Engine谷歌地球引擎GEE中ee.Image格式单张栅格图像数据基本处理操作
|
安全 开发者
SwiftUI极简教程02:Image图片的使用
SwiftUI极简教程02:Image图片的使用
1267 1
SwiftUI极简教程02:Image图片的使用
|
9月前
|
存储 Python
【Python标准库】pillow中Image模块学习
【Python标准库】pillow中Image模块学习
|
Python
Python:data:image/png;base64图片编码解码
Python:data:image/png;base64图片编码解码
395 0
|
Python
Python中,如何使用ImageDraw在Image上绘制粗线?
Python中,如何使用ImageDraw在Image上绘制粗线?
176 0
|
安全 小程序 程序员
屏幕录制与GIF转换---OpenCV-Python开发指南(46)
屏幕录制与GIF转换---OpenCV-Python开发指南(46)
147 2
屏幕录制与GIF转换---OpenCV-Python开发指南(46)
|
编解码 计算机视觉 索引
小啾带你开天眼 之 开启py-OpenCV摄像头及视频处理【Python-Open_CV系列(十二)】
小啾带你开天眼 之 开启py-OpenCV摄像头及视频处理【Python-Open_CV系列(十二)】
602 0
小啾带你开天眼 之 开启py-OpenCV摄像头及视频处理【Python-Open_CV系列(十二)】