mirror of
https://gitee.com/ulthon/ulthon_information.git
synced 2026-03-03 16:24:28 +08:00
完善水印处理
This commit is contained in:
@@ -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;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user