该软件包最新版本(dev-master)没有提供许可证信息。

不依赖框架的图像处理库,无需Imagick。可缩放和裁剪图像,创建缩略图

dev-master 2014-10-10 23:57 UTC

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 installcomposer 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);

这是我们的巨大图像

Regular Image

裁剪到250x325的区域

Cropped

示例:使用比率

可以使用相同的裁剪比率 $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);

Regular Image

如果不小心,会变成拉伸!

Thumbnail

如果您担心保留宽高比,请使用 scale2hscale2w

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);

Regular Image

将自动计算高度以保留宽高比

Width Scaled

缩略图

语法: 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);

Wide Image

水平居中

Thumbnail

示例:高图像的缩略图

$src = '/path/to/tall.jpg';
$dst = '/path/to/tall.thumb.jpg';
\Craftsmancoding\Image::thumbnail($src,$dst,200,200);

Tall Image

垂直居中

Thumbnail