?官方说明文档:图片水印 - 对象存储 OSS - 用户指南 - 数据处理与索引 - 新版图片处理指南 - 图片处理参数 - 图片水印
前提: 在OSS的同一个 存储空间,可以不同文件夹,但要在同一个?BUCKET 内。
唯一要注意的是:
在添加水印操作中,文字水印的文字内容、文字颜色、文字字体、图片水印的水印图片名称等参数需要进行URL安全的Base64编码。编码步骤如下:
- 将内容编码成Base64。
- 将结果中的部分编码替换。
- 将结果中的加号(+)替换成短划线(-)。
- 将结果中的正斜线(/)替换成下划线(_)。
- 将结果中尾部的等号(=)省略。
/**
* 添加图片水印
* @param type $mine_qcode 二维码
* @param type $tg_image 背景海报
* @return string
*/
public function watermark2($mine_qcode, $tg_image) {
$image_src = str_replace(AliConfig::OSS_HTTP, '', $mine_qcode);
$image = $this->urlsafe_b64encode($image_src);
$pic_watermark_config = "?x-oss-process=image/watermark,image_" . $image;
$pre_watermark = $tg_image . $pic_watermark_config;
return $pre_watermark;
}
function urlsafe_b64encode($string) {
$data = base64_encode($string);
$data = str_replace(array('+', '/', '='), array('-', '_', ''), $data);
return $data;
}
|