falmar/eimage

此包已被废弃且不再维护。没有建议的替代包。

图片上传、缩放和裁剪 PHP 类

维护者

详细信息

github.com/falmar/eImage

源代码

问题

安装: 51

依赖: 0

建议者: 0

安全: 0

星星: 2

关注者: 4

分支: 0

开放问题: 0

类型:项目

v0.0.1-alpha 2016-04-05 15:55 UTC

This package is not auto-updated.

Last update: 2023-08-03 21:39:59 UTC


README

Build Status

eImage 是一个简单的 PHP 类,可以让上传和编辑图片更加容易!

这是由 Mark Jackson (mjdigital) 编写的旧类 (_image) 的重写,所有主要想法的功劳都属于他 :D

与原始类的主要变化

  • 使用了所有可用的 PSR (Autoload, CodeStyle, 等...)
  • 添加了异常来处理错误
  • 通过将它们放入通用类方法中减少了代码部分
  • 移除了过时/未使用的方法/条件/变量

要求

  • PHP >= 5.4

示例

上传图片

use eImage\eImage;
use eImage\eImageException;

/** Upload your image **/
$File = (isset($_FILES['img'])) ? $_FILES['img'] : null;

require_once('eImage/autoload.php');

try {

  /**
   * Simple Upload
   */
  $Image = new eImage();
  $Image->upload($File);

  /** -------------------------------------------------- */

  /**
   * The next code will do the following:
   * Rename the image to my_new_image.
   * Place the uploaded image into base_dir/Images/
   * Create a new unique image if find an existing one.
   * return an array with the new image properties.
   */
  $Image = new eImage([
      'NewName'    => 'my_new_name',
      'UploadTo'   => 'Images/',
      'Duplicates' => 'u',
      'ReturnType' => 'array'
  ]);
  $Image->upload($File);
  
} catch (eImageException $e){
  /** do something **/
}

注意:如果在 'NewName' 参数中没有指定扩展名,它将使用原始图片的扩展名。注意2:您可以使用 NewExtension 属性指定新的扩展名

裁剪图片

use eImage\eImage;
use eImage\eImageException;

/** Upload your image **/
$File = (isset($_FILES['img'])) ? $_FILES['img'] : null;

require_once('eImage/autoload.php');

try {

   /**
    * Crop from upload
    */
   $Image = new eImage();
   $Image->upload($File);
   $Image->crop(250, 250, -50, -75);

   /** -------------------------------------------------- */

   /**
    * Crop from source file
    */
   $Image->set([
       'Source' => 'path_to_your_file.jpg',
       'Prefix' => 'AfterCrop-'
   ]);
   $Image->crop(250, 250, -50, -75);
  
} catch (eImageException $e){
  /** do something **/
}

注意:如果您没有指定 NewName 或 Prefix 参数,原始图片将被新的裁剪方法覆盖。您也可以将 Duplicates 设置为 'u' 以创建新的图片而不是覆盖

缩放图片

use eImage\eImage;
use eImage\eImageException;

/** Upload your image **/
$File = (isset($_FILES['img'])) ? $_FILES['img'] : null;

require_once('eImage/autoload.php');

try {

   /**
    * Resize from upload
    */
   $Image = new eImage();
   $Image->upload($File);
   $Image->resize(600, 450);

   /** -------------------------------------------------- */


   /**
    * Resize from source file
    */
   $Image->set([
       'Source' => 'my_source_image.jpg',
       'Prefix' => 'AfterResize-',
       'AspectRatio' => false,
       'ScaleUp' => true
   ]);
   $Image->resize(600, 205);
  
} catch (eImageException $e){
  /** do something **/
}

注意:您可能需要根据需要指定 AspectRatio、Oversize、ScaleUp 等缩放属性。

参数及其默认值

public $NewName;

public $UploadTo;

public $ReturnType = 'full_path';

public $SafeRename = true;

public $Duplicates = 'o';

private $EnableMIMEs = [
    '.jpe'  => 'image/jpeg',
    '.jpg'  => 'image/jpg',
    '.jpeg' => 'image/jpeg',
    '.gif'  => 'image/gif',
    '.png'  => 'image/png',
    '.bmp'  => 'image/bmp',
    '.ico'  => 'image/x-icon',
];
private $DisabledMIMEs = [];

public $CreateDir = false;

public $Source;

public $ImageQuality = 90;

public $NewExtension;

public $Prefix;

public $NewPath;

public $AspectRatio = true;

public $Oversize = false;

public $ScaleUp = false;

public $Position = 'cc';

public $FitPad = true;

public $PadColor = 'transparent';

NewName

指定您图片的新名称。

UploadTo

指定新图片将上传的位置。

ReturnType

  • 'full_path':新图片的完整路径的字符串。
  • 'bool':上传成功时为 true 或 false。
  • 'array'
    • 来自 upload() 方法:与 $_FILE 数组非常相似,它将返回名称、路径、大小、tmp_name 和完整路径。
    • 来自 crop() 方法:将返回名称、前缀、路径、高度、宽度和完整路径。
    • 来自 resize() 方法:将返回名称、前缀、路径、高度、宽度、填充颜色和完整路径。

SafeRename

  • true:将清理图片名称并删除奇怪的字符。
  • false:新图片将包含与上传图片相同的名称。

Duplicates

如果存在文件

  • 'o':覆盖文件。
  • 'u':创建唯一的文件。
  • 'e':抛出 eImageException。

EnabledMIMEs

包含 eImage 类将允许上传的 MIME 类型的数组。

['.jpg' => 'image/jpg']

DisabledMIMEs

如果设置此属性,将禁止上传指定的MIME类型或扩展。

注意:此处未设置的任何其他MIME类型或扩展都将允许上传。

来源

图像上传后自动设置的完整文件路径,以便于访问、调整大小和裁剪。

创建目录

如果设置为true,则不存在时创建目录(UploadTo | NewPath)。

图像质量

整数[1-100]%。

新扩展名

应用新的扩展名到图像(.jpg, .png, .gif)。

前缀

指定图像的新前缀。

新路径

指定新图像的路径,仅适用于crop()和resize()方法。

宽高比

设置true或false以保持或取消图像的宽高比。

超过大小

如果为true,则当宽度 > 高度或反之时,将放大图像。

缩放

设置为true以允许图像从小尺寸放大到更大尺寸。

填充颜色

如果图像不适应画布,则为图像背景的十六进制颜色字符串,默认为'transparent'。

适应填充

设置为true以在新的尺寸不适应且宽高比为true时,利用位置使图像适应画布。

位置

在画布中设置源的位置

  • 'tr': 右上角
  • 'tl': 左上角
  • 'tc': 右上角
  • 'br': 右下角
  • 'bl': 左下角
  • 'bc': 右下角
  • 'cr': 中右
  • 'cl': 中左
  • 'cc': 水平和垂直居中