图片处理有两个地方需要注意,一个是图片路径,一个是图片大小。
一、路径处理
数据库中存储的图片路径有两种形式:
1.相对路径。
采用本地存储时,图片路径为相对路径,比如:/uploads/share/1/qrdode.jpg。
2.完整url
采用云存储时,图片路径为完整url,比如:https://wosho-upload-1258844920.cos.ap-nanjing.myqcloud.com/uploads/usernfo/20210917/1ee5898f30f7a749230e5666e421d943.jpg
获取微信头像,图片路径为完整url,比如:https://thirdwx.qlogo.cn/mmopen/vi_32/u0MicclloO1mWG3tnPk1KYiaPNl4QmrVh8WWtRFLBb1E0mzZYIEraYaHibIBibwaVgJ9WJ2WtL7QJbtPg4kC7l8uwg/132
接口返回给前端的图片需要完整url,这个时候需要做判断,使用公用函数 url_format 处理
/**
* url格式化
* @param string $url 需要格式化的url字符串
* @param string $prefix url前缀
* @param string $rule 使用第三方存储时,可传入图片处理规则
* @return string 返回最终的url字符串
*/
function url_format($url, $prefix = '', $rule = '')
{
if (empty($url)) {
return $prefix . '/uploads/default.jpg';
}
if (substr($url, 0, 4) == 'http') {
return $url.$rule;
} else {
return $prefix .'/'. $url;
}
}
二、图片大小处理
使用腾讯云存储时,可传入图片处理规则。
例如:将原图片以350x350px大小输入,url_format第三个参数传入?imageMogr2/thumbnail/350x350
url_format($url, $prefix, ‘?imageMogr2/thumbnail/350x350’);
更多处理规则请查看腾讯云存储官网文档:https://cloud.tencent.com/document/product/460/36540