uginroot/image-resize

PHP中的图像缩放

v1.0.6 2019-08-13 03:00 UTC

This package is auto-updated.

Last update: 2024-09-13 14:34:42 UTC


README

composer require uginroot/image-resize:^1.0

创建

createFromString

$image = ImageResize::createFromString(file_get_content($path));

createFromPath

$image = ImageResize::createFromPath($path);

__constructor

$content = file_get_content($path);
$resource = imagecreatefromstring($content);
$image = new ImageCreate($resource, $content);
$image = new ImageCreate($resource); // $image->resetOrientation() not working

保存

格式

ImageCreate::FORMAT_JPEG;
ImageCreate::FORMAT_PNG;
ImageCreate::FORMAT_WEBP;

保存

$image->save($path);
// save(string $path [, int $format = ImageCreate::FORMAT_JPEG [, bool $owerwrite = false [, int $mode = 0666]]])

优化图像

查看此包的链接 链接

getContent

echo $image->getContent();
// getContent([int $format = ImageCreate::FORMAT_JPEG]);

打印

$image->print();
// $image->print([int $format = ImageCreate::FORMAT_JPEG]);

__toString

(string)$image === $image->getContent(ImageCreate::FORMAT_JPEG); // true

copyResource

$image->copyResource();

信息

getWidth

$image->getWidth();

getHeight

$image->getHeight();

resetOrientation

如果设置了EXIF方向标签,则旋转照片

$image->resetOrientation();

更改图像

缩放

$image->scale(50);
// scale(int|float 50)

缩放

$image->resize(100, 100);
// resize(int $width, int $heihht [, bool $increase = true])

缩放到高度

$image->resizeToHeight(100);
// resizeToHeight(int $height [, bool $increase = true])

缩放到宽度

$image->resizeToWidth(100);
// resizeToWidth(int $width [, bool $increase = true])

缩放到长边

$image->resizeToLongSide(100);
// resizeToLongSide(int $side [, $increase = true])

缩放到短边

$image->resizeToShortSide(100);
// resizeToShortSide(int $side [, $increase = true])

缩放到最佳适应

$image->resizeToBestFit(100, 100);
// resizeToBestFit(int $width, int $height [, $increase = true])

缩放到最差适应

$image->resizeToWorstFit(100, 100);
// resizeToWorstFit(int $width, int $height [, $increase = true])

裁剪

$image->crop(0, 0, 100, 100);
// crop(int $x, int $y, int $width, int $height)

位置

ImageResize::POSITION_CENTER;
ImageResize::POSITION_TOP;
ImageResize::POSITION_RIGHT;
ImageResize::POSITION_BOTTOM;
ImageResize::POSITION_LEFT;
ImageResize::POSITION_TOP_LEFT;
ImageResize::POSITION_TOP_RIGHT;
ImageResize::POSITION_BOTTOM_LEFT;
ImageResize::POSITION_BOTTOM_RIGHT;

裁剪位置

$image->cropPosition(100, 100);
// cropPosition(int $width, int $height [, int $position = ImageResize::POSITION_CENTER])

缩放覆盖

$image->resizeCover(100, 100);
// resizeCover(int $width, int $height [, int $position = ImageResize::POSITION_CENTER])

缩放包含

$image->resizeContain(100, 100);
// resizeContain(int $width, int $height [, int $position = ImageResize::POSITION_CENTER [, int $color = 0x000000]])

ImageResize::SIDE_TOP;
ImageResize::SIDE_RIGHT;
ImageResize::SIDE_BOTTOM;
ImageResize::SIDE_LEFT;
ImageResize::SIDE_ALL;

裁剪边缘

$image->cropEdge(50, ImageResize::SIDE_ALL);
// cropEdge(int $cutLength [, int $side = ImageResize::SIDE_ALL])

添加边框

$image->addBorder(10);
// addBorder(int $borderWidth [, int $side = ImageResize::SIDE_ALL [, int $color = 0x000000]])

水印

适应

ImageResize::FIT_CANCEL; // cancel if wathermark size grate then $image
ImageResize::FIT_RESIZE; // resize wathermak
ImageResize::FIT_AS_IS; // crop if watermark out of bounds
$watermark = ImageResize::createFromPath($path);
$image->setWatermark($watermark);
// setWatermark(ImageResize $watermark [, int $position = ImageResize::POSITION_BOTTOM_RIGHT [, int $padding = 16 [, int $fit = ImageResize::FIT_AS_IS]]]);

更改

$image->change(function(&$resource){
    $resource = imagerotate($resource, 90, 0x000000);
});
// change(callable(&$resource) $callback)