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

一、路径处理
数据库中存储的图片路径有两种形式:
1.相对路径。
采用本地存储时,图片路径为相对路径,比如:/uploads/share/1/qrdode.jpg。
2.完整url
采用云存储时,图片路径为完整url,比如:https://xxxx/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