craftsmancoding / image
不依赖框架的图像处理库,无需Imagick。可缩放和裁剪图像,创建缩略图
Requires
- php: >=5.3.0
This package is not auto-updated.
Last update: 2024-09-24 02:54:25 UTC
README
不依赖框架的图像处理库,无需Imagick。可缩放和裁剪图像,创建缩略图等...
此库提供了一个干净的接口来使用PHP图像处理函数。它旨在为各种平台和环境上的各种项目提供统一的接口(一些没有Imagick)。
支持的功能
- crop : 裁剪图像
- scale : 将图像缩放到新的高度和宽度。
- scale2h : 保留宽高比的情况下缩放到新的高度。
- scale2w : 保留宽高比的情况下缩放到新的宽度。
- thumbnail : 创建指定尺寸的缩略图,进行缩放和裁剪。
- ... 更多功能即将推出...
使用方法
Composer
要在项目中使用此库,请在 composer.json 的 "require" 节中引用库。
"require": {
"craftsmancoding/image": "dev-master"
}
运行 composer install 或 composer update。
通过Composer使用此库是推荐的方式。
没有Composer
要在没有Composer的情况下使用此库,下载 Image.php 类并引入它。静态调用函数。
require_once 'path/to/Image.php';
\Craftsmancoding\Image::scale2h('/path/to/img.jpg', '/path/to/new.jpg', 100);
如果您使用命名空间(例如在类内部),调用可能如下所示
require_once 'path/to/Image.php';
use Craftsmancoding;
class MyClass {
public function my_method() {
Image::scale2h('/path/to/img.jpg', '/path/to/new.jpg', 100);
}
}
语法
此库类中的所有函数都旨在静态调用 -- 无需实例化,也没有类变量持久化。没有面向对象的内容。
裁剪(crop)
语法: crop(string $src, string $dst,int $x, int $y,int $w, int $h, number $ratio=1)
- $src : 源图像的完整路径
- $dst : 目标(完整路径) -- 您想要创建裁剪图像的位置
- $x : 裁剪区域起始的x坐标(0 = 左侧)
- $y : 裁剪区域起始的y坐标(0 = 顶部)
- $w : 裁剪区域的宽度(像素)
- $h : 裁剪区域的高度(像素)
- $ratio : 实际宽度/显示宽度的乘数。如果图像以小于实际大小的方式显示,则很有用。
输出: 裁剪图像的完整路径(即目标)。
裁剪区域以X-Y坐标指定,其中0,0位于图像的左上角。使用 $ratio 属性以与其他实例(例如jCrop)兼容,当图像以不同于其实际大小的方式显示时。
示例
使用裁剪时,需要调整参数以找到所需的区域。像jCrop这样的库可以用于此目的。
$x = 600; // from left
$y = 300; // from top
$w = 250;
$h = 325;
\Craftsmancoding\Image::crop($src,$dst,$x,$y,$w,$h);
这是我们的巨大图像
裁剪到250x325的区域
示例:使用比率
可以使用相同的裁剪比率 $ratio 为2来实现上述相同的裁剪
$x = 300; // from left
$y = 150; // from top
$w = 125;
$h = 163;
$ratio = 2;
Image::crop($src,$dst,$x,$y,$w,$h,$ratio);
$ratio 乘数在图像不按实际大小显示时很有用。
缩放(缩放到给定尺寸)
语法: scale(string $src, string $dst, int $new_w, int $new_h)
- $src : 源图像的完整路径
- $dst : 目标(完整路径) -- 您想要保存缩放图像的位置
- $new_w : 新目标图像的期望宽度(像素)
- $new_h : 新目标图像的期望高度(像素)
输出: 目标的完整路径。
警告:此功能可能会扭曲图像的宽高比。
示例:拉伸
$src = '/path/to/image.jpg'; // e.g. 300x225
$dst = '/path/to/stretched.jpg';
\Craftsmancoding\Image::scale($src,$dst,400,100);
如果不小心,会变成拉伸!
如果您担心保留宽高比,请使用 scale2h 或 scale2w。
scale2h(按高度缩放)
语法: scale2h(string $src, string $dst, int $new_h)
- $src : 源图像的完整路径
- $dst : 目标(完整路径) -- 您想要保存缩放图像的位置
- $new_h : 新目标图像的期望高度(像素)
输出: 目标的完整路径。
宽度将自动缩放以保持原始宽高比。
scale2w(按宽度缩放)
语法: scale2w(string $src, string $dst, int $new_w)
- $src : 源图像的完整路径
- $dst : 目标(完整路径) -- 您想要保存缩放图像的位置
- $new_w : 新目标图像的期望宽度(像素)
输出: 目标的完整路径。
高度将自动缩放以保持原始宽高比。
$src = '/path/to/image.jpg'; // e.g. 300x225
$dst = '/path/to/stretched.jpg';
\Craftsmancoding\Image::scale2w($src,$dst,150);
将自动计算高度以保留宽高比
缩略图
语法: thumbnail(string $src, string $dst, int $w, int $h)
- $src : 源图像的完整路径
- $dst : 目标路径(完整路径),用于保存缩略图
- $w : 缩略图的宽度(像素)
- $h : 缩略图的高度(像素)
输出: 目标的完整路径。
thumbnail 函数将对缩略图进行缩放和裁剪操作以最佳匹配。要获得更多控制,请使用 crop 函数。
示例:宽图像的缩略图
$src = '/path/to/wide.jpg';
$dst = '/path/to/wide.thumb.jpg';
\Craftsmancoding\Image::thumbnail($src,$dst,200,200);
水平居中
示例:高图像的缩略图
$src = '/path/to/tall.jpg';
$dst = '/path/to/tall.thumb.jpg';
\Craftsmancoding\Image::thumbnail($src,$dst,200,200);
垂直居中






