dmcblue/php-image-resize

调整图片大小

1.0.0 2018-10-08 20:00 UTC

This package is not auto-updated.

Last update: 2024-09-19 00:26:11 UTC


README

这是一个便利的工具,可以将一批图片调整到不同的尺寸,以适应网站资源的响应性。

需求

功能

  • 将图片或图片文件夹调整为预定义的尺寸集。
  • 两种调整方式:containcover,类似于CSS背景大小
  • 可配置为仅对图片进行下采样,防止图片放大(默认设置)。
  • 同时处理任意数量的尺寸组。
  • 添加后缀到文件名。
  • 目前支持BMP、(静态)GIF、JPG和PNG。

注意

代码受php.ini中由memory_limit指定的允许内存大小的限制。如果PHP尝试分配超过允许的内存,它将在创建文件过程中关闭。

当再次运行脚本时,它会在输出文件夹中遇到这个截断文件,并抛出以下错误

"PHP Warning:  imagecreatefrompng(): gd-png:  fatal libpng error: Read Error: truncated data in..."

您只需删除该文件(或者更好的方法是删除所有输出文件以确保)然后再次运行脚本。

我还没有找到在关闭错误之前检测这些问题的令人满意的方法。

用法

// Load composer libs
require("some/file/path/vendor/autoload.php");

$imageResizer = new \Dmcblue\ImageResize\ImageResizer();
$configArray = 
	[
		'originalPath' => '/path/to/original/images',
		'sizeConfigs' => [[
			'outputPath' => '/path/to/resized/images/thumbnails',
			'postfix' => '_thumbnail',
			'type' => \Dmcblue\ImageResize\Type::COVER,
			'width' => 50,
			'height' => 50,
		],[
			'outputPath' => '/path/to/resized/images/large',
			'postfix' => '_lrg',
			'type' => \Dmcblue\ImageResize\Type::CONTAIN,
			'width' => 2000,
			'height' => 2000,
		]]
	];
$config = new \Dmcblue\ImageResize\Config($configArray);
$imageResizer->resizeAll($config);
// Or resize a single image
$imageResizer->resize('/path/to/original/image.jpg', $config);
// Creates
//    /path/to/resized/images/thumbnails/image_thumbnail.jpg
//    /path/to/resized/images/large/image_lrg.jpg

测试

"./vendor/bin/phpunit" --bootstrap "vendor/autoload.php" tests