如何解决无法在 PHP 函数中使用 RGB 设置透明度
在函数中使用 rgb 格式时无法使用透明度:
"message": "无法读取彩色 rgb(0 0 1 / 50%)。"
如果我使用#ffff 或 #000 等正常颜色,它会起作用。
我正在使用此功能在图像上添加文本水印。:
public static function addwatermark( $name ) {
$thumbnail = Image::make($name);
$thumbnail->text('WATERMARKTEXT',90,50,function ($font) use ($thumbnail) {
$font->file('public/watermarkfont.ttf');
$font->color(rgb(0 0 1 / 50%));
});
$thumbnail->save($name)->destroy();
}
参考:https://onlinewebtutorblog.com/how-to-add-watermark-text-on-images-laravel-8/
解决方法
问题在于,当您想使用具有处理不透明度的 Alpha 通道的 rgb()
时,您正试图向 rgba()
添加不透明度。
public static function color_inverse($color){
$color = str_replace('#','',$color);
if ($color == '000000'){
return "rgba(255,255,1)";
}
return "rgba(0,0.5)";
}
您可以在此处找到 documentation 中水印 color
方法可用的所有格式。
不透明度从 1
到 0
,1
为 100%,0
为 0%,因此 0.5
为 50% 不透明度。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。