php - 水印函数返回true但图像没有被修改
问题描述
我要做的就是在上传时给图片加水印。虽然水印函数返回TRUE
的图像没有被修改。
这是我编写的函数,即使尝试并捕获它也不起作用:
public function product_small_image_upload($path, $folder)
{
try {
$image = new ImageResize($path);
$image->quality_jpg = 85;
$image->resizeToHeight(300);
$new_name = 'img_x300_' . generate_unique_id() . '.jpg';
$new_path = 'uploads/' . $folder . '/' . $new_name;
$imgConfig = array();
$imgConfig['image_library'] = 'GD2';
$imgConfig['source_image'] = $new_path;
$imgConfig['wm_text'] = 'Copyright 2019';
$imgConfig['wm_type'] = 'text';
$imgConfig['wm_font_size'] = '16';
$this->load->library('image_lib', $imgConfig);
$this->image_lib->initialize($imgConfig);
$this->image_lib->watermark();
$image->save(FCPATH . $new_path, IMAGETYPE_JPEG);
return $new_name;
} catch (ImageResizeException $e) {
return null;
}
}
$new_path
变量包含这个字符串,upload/images/img_x300_1289.png
名称是随机生成的。我也尝试过
base_url().$new_path
,因为我认为我必须更具体地了解图像路径,但它仍然无法正常工作。我怎么能看到什么不起作用,为什么即使我在上传时这样做,图像也没有水印?
解决方案
首先添加 $new_path = FCPATH 。“上传/”。$文件夹。'/' 。$新名称;
您不需要使用 $imgConfig['image_library'],也没有使用水印对齐。
为什么不使用这样的正确方法:
$config['source_image'] = $new_path;
$config['wm_text'] = 'Copyright 2019';
$config['wm_type'] = 'text';
$config['wm_font_path'] = './system/fonts/texb.ttf';
$config['wm_font_size'] = '8';
$config['wm_font_color'] = '000000';
$config['wm_vrt_alignment'] = 'bottom';
$config['wm_hor_alignment'] = 'right';
使用此代码,您将获得水印,只需选择您想要的文本颜色
推荐阅读
- swift - 在 init() 构造函数中初始化的带有 @State 的 SwiftUI 视图
- android - 无法在 android studio 3.6 中进行 git pull
- android - 适用于 Android 和 iOS 的应用内购买撤销机制
- ios - 需要在 Swift 中以编程方式进行监督和非监督
- r - Aggregate rows with conditions, sum quantitative values, and keep character values of the max
- android - APK分析使用MobSF(Mobile-Security-Framework-MobSF)框架,显示代码分析为空
- python - 用反斜杠 pandas 分隔列值
- android - Android Q 中的内部应用程序音频捕获不适用于某些 android 设备
- powershell - 在 Windows Server 2008 R2 中使用 New-WebVirtualDirectory
- javascript - 滚动或单击菜单外时关闭导航