uginroot / image-resize
PHP中的图像缩放
v1.0.6
2019-08-13 03:00 UTC
Requires
- php: >=7.1
- ext-exif: *
- ext-gd: *
Requires (Dev)
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)