当前位置:   article > 正文

微信小程序的图片色彩分析,窃取网络图片的主色调

微信小程序的图片色彩分析,窃取网络图片的主色调

1、安装 Mini App Color Thief 包 

包括下载包,简单使用都有,之前写了,这里就不写了

网址:微信小程序的图片色彩分析,窃取主色调,调色板-CSDN博客

2、 问题和解决方案

  • 问题:由于我们的窃取图片的是需要画布的,我需要使用网络图片去用画布时,微信小程序会报错,最后发现,需要本地图片才行,用网络图片会出问题
  • 解决方案:我们使用wx.downloadFile去下载该图片,然后获取临时路径去使用画布和Mini App Color Thief 包 窃取图片颜色,防止图片重复下载的话,我们去用微信小程序中的另一个api,FileSystemManager.access(Object object)去判断临时文件是否存在

 3、配置downloadFile.js文件【放置在utils文件夹下】

  1. export default (url, path = "") => {
  2. return new Promise((resolve, reject) => {
  3. const fs = wx.getFileSystemManager()
  4. // 判断文件/目录是否存在
  5. fs.access({
  6. path,
  7. success(res) {
  8. // 文件存在,复用
  9. console.log(res)
  10. resolve(path)
  11. },
  12. fail(res) {
  13. // 文件不存在或其他错误,下载为临时文件
  14. console.log(res)
  15. wx.downloadFile({
  16. url,
  17. success(res) {
  18. if (res.statusCode === 200) {
  19. resolve(res.tempFilePath)
  20. wx.setStorageSync('bgcUrl', res.tempFilePath)
  21. }
  22. },
  23. fail: (err) => {
  24. reject(err)
  25. }
  26. })
  27. }
  28. })
  29. })
  30. }

4、获取图片临时路径,开始窃取

注意:wxml中需要放置

<canvas canvas-id="myCanvas" />
  1. import downloadFile from '../../utils/downloadFile'
  2. Page({
  3. data: {
  4. palette: "",
  5. // 用户信息
  6. userInfo: {},
  7. },
  8. // 判断是否有背景图片的缓存文件,没有就下载为临时文件,最后绘画出来
  9. async bgcDownload() {
  10. let bgcUrl = wx.getStorageSync('bgcUrl')
  11. let result = await downloadFile(this.data.userInfo.backgroundUrl, bgcUrl)
  12. console.log(result);
  13. const ctx = wx.createCanvasContext('myCanvas')
  14. ctx.drawImage(result, 0, 0, 100, 100);
  15. ctx.draw(false, () => {
  16. wx.canvasGetImageData({
  17. canvasId: "myCanvas",
  18. x: 0,
  19. y: 0,
  20. width: 100,
  21. height: 100,
  22. success: res => {
  23. let palette = colorThief(res.data).color().getHex();
  24. this.setData({ palette })
  25. }
  26. });
  27. })
  28. },
  29. onReady: function () {
  30. this.bgcDownload()
  31. },
  32. })

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Gausst松鼠会/article/detail/77115
推荐阅读
相关标签
  

闽ICP备14008679号