阿里云文字水印参数必须是URL安全的Base64编码(详见:https://help.aliyun.com/document_detail/32211.html?spm=a2c4g.11186623.2.10.275930d38ylgjx#concept-tb5-shx-wdb)
在图片处理服务里会有很多参数需要变成Base64位编码。注意这里的URL 安全Base64位编码只是用在水印操作某些特定参数(文字水印的文字内容、文字颜色、文字字体及图片水印的水印object)里,不要将其用在签名字符串(Signature)的内容里。编码的格式是:
编码函数:
function urlsafe_b64encode($string) {
$data = base64_encode($string);
$data = str_replace(array('+','/','='),array('-','_',''),$data);
return $data;
}
解码函数:
function urlsafe_b64decode($string) {
$data = str_replace(array('-','_'),array('+','/'),$string);
$mod4 = strlen($data) % 4;
if ($mod4) {
$data .= substr('====', $mod4);
}
return base64_decode($data);
}