当前位置:   article > 正文

heic图片转换_heic-convert

heic-convert

问题:

heic图片在微信小程序端不能回显也不能上传成功。

1.了解heic图

Heic格式是苹果专门为iOS11开发的照片格式。Heic是苹果iOS和macOS的一种文件格式,用于处理图像和视频。Heic是H.264和JEP格式,取代了IOS 11系统中的原始视频和照片。Heic格式不仅可以节省内存,还可以保留原始图像质量。Heic格式是苹果iOS和iOS的特殊格式。

heic的特点:与JPG相比,heic格式占用空间更少,图像质量更无损。HEIC格式照片支持iOS11和macOS High Sierra(10.13)及更高版本。但是这种格式不能用图片查看软件直接在Windows中打开(Windows10 RS4开始支持这种格式)。

2.微信小程序下的回显

heic的图片在微信小程序下,经过压缩,可以转换为jpeg,展示

  1. wx.compressImage({
  2. src: path, // 图片路径
  3. quality: 50, // 压缩质量
  4. success: (res) => {
  5. console.log(res, 'ressss')
  6. },
  7. fail: (err) => {
  8. console.log(err)
  9. }
  10. })

注意:压缩图片在微信小程序可以回显页面,但是继续上传后端,依旧会失败

3.解决微信小程序上传失败

终极解决方案是后端进行转换。暂时没有找到前端能直接转换的方案,如果有,欢迎讨论

(下面是为了上传heic图片成功,所以用本地node端测试了一下转换图片,在回传给前端,在重新上传给真正的后端转换的图片上传成功的案例)

(1)微信小程序端

  1. //选择图片
  2. wx.chooseMedia({
  3. count: 1,
  4. mediaType: 'image',
  5. success: (r) => {
  6. //上传给node服务器进行转换
  7. wx.uploadFile({
  8. url: 'http://localhost:7001/uploadImg/api/heictoany',
  9. filePath:r.tempFiles[0].tempFilePath,
  10. name: 'file',
  11. success: (res) => {
  12. let src = 'http://localhost:7001/MKIntouch/' ++JSON.parse(res.data).src
  13. //拿到地址重新下载图片
  14. wx.downloadFile({
  15. url: src,
  16. success (tempR) {
  17. if (tempR.statusCode === 200) {
  18. //重新生成本地临时路径(用这个路径在去上传给后端可上传heic成功,也可以回显)
  19. console.log(tempR.tempFilePath)
  20. }
  21. }
  22. })
  23. }
  24. })
  25. }

(2)node端转换heic

主要使用插件

https://www.wpsshop.cn/w/煮酒与君饮/article/detail/841645

推荐阅读
相关标签
  

闽ICP备14008679号