完善水印处理

This commit is contained in:
2024-02-18 15:58:56 +08:00
parent aa9ae7f30b
commit b3f458795a

View File

@@ -2,6 +2,8 @@
namespace app\common\tools; namespace app\common\tools;
use Intervention\Image\Exception\NotReadableException;
use Intervention\Image\Exception\NotSupportedException;
use Intervention\Image\Image as ImageImage; use Intervention\Image\Image as ImageImage;
use Intervention\Image\ImageManagerStatic; use Intervention\Image\ImageManagerStatic;
use SplFileInfo; use SplFileInfo;
@@ -9,16 +11,15 @@ use think\facade\App;
class Image class Image
{ {
public static function addWatermark(SplFileInfo $file, $watermark_str = 'phpreturn.com'):ImageImage public static function addWatermark(SplFileInfo $file, $watermark_str = 'phpreturn.com'):ImageImage|bool
{ {
// 检查文件是否是图片
if (!in_array($file->getExtension(), ['jpg', 'jpeg', 'png', 'gif'])) {
return false;
}
ImageManagerStatic::configure(['driver' => 'imagick']); ImageManagerStatic::configure(['driver' => 'imagick']);
try {
$img = ImageManagerStatic::make($file->getPathname()); $img = ImageManagerStatic::make($file->getPathname());
} catch (NotReadableException|NotSupportedException $th) {
return false;
}
$font_size = 20; $font_size = 20;
@@ -58,6 +59,9 @@ class Image
$watermarked_file_save_name = '/upload/watermark/' . $src_md5 . '.' . $src_file->getExtension(); $watermarked_file_save_name = '/upload/watermark/' . $src_md5 . '.' . $src_file->getExtension();
} }
// 如果以jpe结尾转换为jpg
$watermarked_file_save_name = str_replace('.jpe', '.jpg', $watermarked_file_save_name);
$watermarked_file = App::getRootPath() . '/public' . $watermarked_file_save_name; $watermarked_file = App::getRootPath() . '/public' . $watermarked_file_save_name;
if (file_exists($watermarked_file)) { if (file_exists($watermarked_file)) {
@@ -68,7 +72,14 @@ class Image
mkdir(dirname($watermarked_file), 0777, true); mkdir(dirname($watermarked_file), 0777, true);
} }
static::addWatermark($src_file, $watermark_text)->save($watermarked_file); $img = static::addWatermark($src_file, $watermark_text);
if ($img) {
$img->save($watermarked_file);
} else {
// 把图片复制到新的位置
copy($src, $watermarked_file);
}
return $watermarked_file_save_name; return $watermarked_file_save_name;
} }