图片处理有两个地方需要注意,一个是图片路径,一个是图片大小。

    一、路径处理
    数据库中存储的图片路径有两种形式:
    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 处理

    1. /**
    2. * url格式化
    3. * @param string $url 需要格式化的url字符串
    4. * @param string $prefix url前缀
    5. * @param string $rule 使用第三方存储时,可传入图片处理规则
    6. * @return string 返回最终的url字符串
    7. */
    8. function url_format($url, $prefix = '', $rule = '')
    9. {
    10. if (empty($url)) {
    11. return $prefix . '/uploads/default.jpg';
    12. }
    13. if (substr($url, 0, 4) == 'http') {
    14. return $url.$rule;
    15. } else {
    16. return $prefix .'/'. $url;
    17. }
    18. }

    二、图片大小处理
    使用腾讯云存储时,可传入图片处理规则。
    例如:将原图片以350x350px大小输入,url_format第三个参数传入?imageMogr2/thumbnail/350x350
    url_format($url, $prefix, ‘?imageMogr2/thumbnail/350x350’);

    更多处理规则请查看腾讯云存储官网文档:https://cloud.tencent.com/document/product/460/36540