lasyntez/image-factory

使用包装器处理 Imagine 库,以简单方式处理图像

dev-master 2016-03-01 15:48 UTC

This package is not auto-updated.

Last update: 2024-09-14 19:19:57 UTC


README

DUB

基于Imagine库,ImageFactory提供了包装器,允许以简单方式处理图像。

需求

  • PHP 5.3+
  • Imagine的依赖项

安装

 $ composer require lasyntez/image-factory

基本用法

AndroidBitmapGenerator是包装器,允许Android开发者通过提供原始图像路径,实时生成各种密度的位图(mdpi - hdpi - xhdpi - xxhdpi - xxxhdpi)。支持两种驱动程序:GD(默认)和Imagick。当输出格式为png时,Imagick驱动程序似乎更高效,但有多种组合可以优化输出。

<?php

require 'vendor/autoload.php';

use ImageFactory\Android\Density\AndroidBitmapGenerator;

$generator = new AndroidBitmapGenerator('images/neptune.jpg');
$generator->execute();

/* CHANGE THE DRIVER IF NEEDED */
$generator->setDriver(ImageGeneratorInterface::DRIVER_IMAGICK)->execute();

就这么简单,生成的文件将与源图像在同一目录下,文件名相同,后缀为相对密度。(例如,neptune-mdpi.jpg)。

可以通过构造函数的第二个参数或调用适当的方法为生成的文件指定不同的名称。

<?php

$generator = new AndroidBitmapGenerator('images/neptune.jpg');
$generator->setOutputPath('output/saturn.jpg')
		  ->execute();

/* OR */

$generator = new AndroidBitmapGenerator('images/neptune.jpg', 'output/saturn.jpg');
$generator->execute(); 

根据文档,仅应生成xxxhdpi位图用于启动器图标,否则常规位图的最高密度应为xxhdpi。默认情况下,位图类型设置为常规,以生成5个文件中的一个,用于启动器图标。

<?php

use ImageFactory\Android\Density\AndroidBitmapGenerator;

$generator->setBitmapType(AndroidBitmapGenerator::BITMAP_TYPE_ICON_LAUNCHER);
          //->setBitmapType(AndroidBitmapGenerator::BITMAP_TYPE_REGULAR); (default)

可以通过构造函数或调用适当的设置器来设置引用大小,该大小引用最高密度。否则,默认情况下将与原始图像大小相同。

<?php

$generator = new AndroidBitmapGenerator('images/neptune.jpg', null, 400, 300);
$generator->execute(); 

/* OR */

$generator = new AndroidBitmapGenerator('images/neptune.jpg');
$generator->setReferenceWidth(400)
          ->setReferenceHeight(300)
          //->setReferenceSize(400, 300)
		  ->execute();

当源图像更改时,为了定义新的引用大小,请确保在调用setReferenceSize(或setReferenceWidth和/或setReferenceHeight)之后调用setImagePath以覆盖先前的值。

<?php

$generator = new AndroidBitmapGenerator('images/neptune.jpg');
$generator->setImagePath(__DIR__.'/images/mars.jpg')
		  ->setReferenceSize(400, 300)
          //->setReferenceWidth(400)
          //->setReferenceHeight(300)
		  ->execute();

支持两种压缩类型

  • png(默认)
  • jpeg

只有在输出格式为jpeg时才需要设置,因为默认压缩类型是png。setCompression方法接受两个参数,第一个是类型(png或jpeg),第二个是它的值。png文件的默认压缩级别为7(需要从0到9的值),而jpeg文件的默认压缩级别为75(其值应在0到100之间)。

<?php

use ImageFactory\Image\ImageGeneratorInterface;

$generator = new AndroidBitmapGenerator('/images/neptune.jpg');
	$generator
	          ->setCompression(ImageGeneratorInterface::COMPRESSION_JPEG, ImageGeneratorInterface::COMPRESSION_JPEG_DEFAULT_LEVEL)
  			  ->execute();

路线图

  • 支持动画gif

许可协议

MIT许可协议。请参阅文件