dmcblue/php-image-resize
调整图片大小
1.0.0
2018-10-08 20:00 UTC
Requires (Dev)
This package is not auto-updated.
Last update: 2024-09-19 00:26:11 UTC
README
这是一个便利的工具,可以将一批图片调整到不同的尺寸,以适应网站资源的响应性。
需求
- PHP 7+
- PHP GD图片模块
功能
- 将图片或图片文件夹调整为预定义的尺寸集。
- 两种调整方式:
contain和cover,类似于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