Editor’s Choice: Intervention/Image

轮询加水印

// 把原图强制转换成800px(resize)
// 并使其宽高按原图比例适用(aspectRatio)
// 同时不转换图片的横竖比例(orientate)(特指长图【宽窄 竖长】时保持生成图片的样式不变)
$img = Image::make($pureImg)->orientate()->resize(800, null, function ($constraint) {
    $constraint->aspectRatio();
    $constraint->upsize();
});
$watermark = Image::make($watermark);
$x = 0;
while ($x < $img->width()) {
    $y = 0;
    while($y < $img->height()) {
        $img->insert($watermark, 'top-left', $x, $y)->save(storage_path('app/public/cert/' . $filename));
        $y += $watermark->height() + 30;
    }
    $x += $watermark->width() + 30;
}

图片转换到BASE64

$data = (string) Image::make('public/bar.png')->encode('data-url');