From b9f3be4b3d16d6f7680561ffb4cac048d4a8babc Mon Sep 17 00:00:00 2001 From: jsasg <735273025@qq.com> Date: Wed, 11 Jun 2025 15:36:44 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E6=B0=B4=E5=8D=B0=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/admin/controller/v1/Upload.php | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/app/admin/controller/v1/Upload.php b/app/admin/controller/v1/Upload.php index 78c8aece..dee2d3e4 100644 --- a/app/admin/controller/v1/Upload.php +++ b/app/admin/controller/v1/Upload.php @@ -42,7 +42,7 @@ class Upload $filemd5 = $file->md5(); $filesha1 = $file->sha1(); - $image_model = SysImageUploadRecordModel::md5($filemd5)->find(); + $image_model = null; // SysImageUploadRecordModel::md5($filemd5)->find(); if (is_null($image_model)) { $filename = Filesystem::disk('image')->putFile($param['module'], $file); // 处理图片 @@ -50,14 +50,19 @@ class Upload $image = $image_manager->read('.' . $storage . '/' . $filename); // 水印 - list($enabled, $type, $text_options, $image_options) = $this->getWatermarkOptions(); + list( + 'enabled' => $enabled, + 'type' => $type, + 'text_options' => $text_options, + 'image_options' => $image_options + ) = $this->getWatermarkOptions(); if ($enabled) { // 图片水印 if ($type == 'IMAGE' && $image_options['image'] != '') { // 读取水印图片 - $watermark_image = $image_manager->read($image_options['image']); + $watermark_image = $image_manager->read(public_path() . $image_options['image']); // 缩放水印图片 - $watermark_image->scale($image_options['width'], $image_options['height']); + $watermark_image->scale((int)$image_options['width'], (int)$image_options['height']); // 绘制水印图片 $image->place( $watermark_image, @@ -76,12 +81,14 @@ class Upload $font_factory = new FontFactory(function(FontFactory $font) use($text_options) { // 设置字体 - $font->filename($text_options['font']); + $font->filename(public_path() . $text_options['font']); // 设置字体大小 $font->size($text_options['size']); // 设置字体颜色及透明度 $opacity = dechex((int)ceil(255 * ($text_options['opacity'] / 100))); $font->color($text_options['color'] . $opacity); + $font->align('left'); + $font->valign('top'); }); // 文字尺寸 $font_rect = $image->driver()->fontProcessor()->boxSize($text_options['txt'], $font_factory()); @@ -149,11 +156,11 @@ class Upload $config_model = new \app\admin\controller\v1\SiteConfig; $watermark_config = $config_model->getByGroupUniqueLabel('watermark'); return [ - 'enalbed' => data_get($watermark_config, 'watermark_enabled.value', 0) == 1, + 'enabled' => data_get($watermark_config, 'watermark_enabled.value', 0) == 1, 'type' => data_get($watermark_config, 'watermark_type.value', ''), 'text_options' => [ 'txt' => data_get($watermark_config, 'watermark_text_value.value', ''), - 'font' => data_get($watermark_config, 'watermark_font_family.value', ''), + 'font' => data_get($watermark_config, 'watermark_text_font.value', ''), 'size' => (float)data_get($watermark_config, 'watermark_text_size.value', 12), 'color' => data_get($watermark_config, 'watermark_text_color.value', '#000000'), 'position' => data_get($watermark_config, 'watermark_position.value', 'top-left'), @@ -169,7 +176,7 @@ class Upload 'offset_x' => (int)data_get($watermark_config, 'watermark_offset_x.value', 0), 'offset_y' => (int)data_get($watermark_config, 'watermark_offset_y.value', 0), 'opacity' => (int)data_get($watermark_config, 'watermark_opacity.value', 100), - ], + ] ]; } /**