微信开发之旅———Day7(媒体api之图片api)

(昨天不太舒服就鸽了一天,QAQ)

前天看了一个最常用的网络api——wx.request
然后可能会有人问了,我想自己写api,怎么去做呢?这里给大家提供一个思路,就是用spring boot去写api,仅需要少量的配置,开发复杂度大大降低。(有需求的同学可以先去了解一下,我之后可能也会开一篇从零学spring boot吧,有兴趣的朋友们可以关注一下)。

之前还说过,除了这个api还有很多api,这里就不一一演示了,因为没有现成的api供大家使用,所以看一下用法就ok,实际操作和wx.request大同小异。
详情戳这里

媒体api

今天我们主要来看看媒体api,媒体api大致分为5类:

  • 图片api
  • 录音api
  • 音频播放控制api
  • 音乐播放控制api
  • 视频api

先来看一下图片api

图片api

图片api主要实现对本地相册图片或相机拍照图片的处理,目前包括6个api接口

  • wx.saveImageToPhotosAlbum(Object object) 接口用于预览图片。
  • wx.previewImage(Object object) 接口用于在新页面中全屏预览图片。预览的过程中用户可以进行保存图片、发送给朋友等操作。
  • wx.getImageInfo(Object object) 接口用于获取图片信息。网络图片需先配置download域名才能生效。
  • wx.compressImage(Object object) 接口用于压缩图片接口,可选压缩质量。
  • wx.chooseMessageFile(Object object) 接口用于从客户端会话选择文件。
  • wx.chooseImage(Object object) 接口用于从本地相册选择图片或使用相机拍照。

来一个一个看一下

1.wx.saveImageToPhotosAlbum(Object object) 接口用于预览图片。

More Actions属性类型必填说明filePathstring是图片文件路径,可以是临时文件路径或永久文件路径,不支持网络图片路径successfunction否接口调用成功的回调函数failfunction否接口调用失败的回调函数completefunction否接口调用结束的回调函数(调用成功、失败都会执行)

属性 类型 必填 说明
filePath string 图片文件路径,可以是临时文件路径或永久文件路径,不支持网络图片路径
success function 接口调用成功的回调函数
fail function 接口调用失败的回调函数
complete function 接口调用结束的回调函数(调用成功、失败都会执行)

示例代码

wx.saveImageToPhotosAlbum({
  success(res) { }
})
2.wx.previewImage(Object object)接口用于在新页面中全屏预览图片。预览的过程中用户可以进行保存图片、发送给朋友等操作。
属性 类型 默认值 必填 说明
urls Array 需要预览的图片链接列表。2.2.3 起支持云文件ID。
current string urls 的第一张 当前显示图片的链接
success function 接口调用成功的回调函数
fail function 接口调用失败的回调函数
complete function 接口调用结束的回调函数(调用成功、失败都会执行)

示例代码

wx.previewImage({
  current: '', // 当前显示图片的http链接
  urls: [] // 需要预览的图片http链接列表
})
3.wx.getImageInfo(Object object) 接口用于获取图片信息。网络图片需先配置download域名才能生效。
属性 类型 必填 说明
src string 图片的路径,可以是相对路径、临时文件路径、存储文件路径、网络图片路径
success function 接口调用成功的回调函数
fail function 接口调用失败的回调函数
complete function 接口调用结束的回调函数(调用成功、失败都会执行)

示例代码

wx.getImageInfo({
  src: 'images/a.jpg',
  success(res) {
    console.log(res.width)
    console.log(res.height)
  }
})

wx.chooseImage({
  success(res) {
    wx.getImageInfo({
      src: res.tempFilePaths[0],
      success(res) {
        console.log(res.width)
        console.log(res.height)
      }
    })
  }
})
4.wx.compressImage(Object object) 接口用于压缩图片接口,可选压缩质量。
属性 类型 默认值 必填 说明
src string 图片路径,图片的路径,可以是相对路径、临时文件路径、存储文件路径
quality number 80 压缩质量,范围0~100,数值越小,质量越低,压缩率越高(仅对jpg有效)。
success function 接口调用成功的回调函数
fail function 接口调用失败的回调函数
complete function 接口调用结束的回调函数(调用成功、失败都会执行)

示例代码

wx.compressImage({
  src: '', // 图片路径
  quality: 80 // 压缩质量
})
5.wx.chooseMessageFile(Object object) 接口用于从客户端会话选择文件。
属性 类型 默认值 必填 说明
count number 100 最多可以选择的图片张数,可以 0~100
type string 'all' 所选的文件的类型
success function 接口调用成功的回调函数
fail function 接口调用失败的回调函数
complete function 接口调用结束的回调函数(调用成功、失败都会执行)

示例代码

wx.chooseMessageFile({
  count: 10,
  type: 'image',
  success(res) {
    // tempFilePath可以作为img标签的src属性显示图片
    const tempFilePaths = res.tempFilePaths
  }
})
6.wx.chooseImage(Object object) 接口用于从本地相册选择图片或使用相机拍照。
属性 类型 默认值 必填 说明
count number 9 最多可以选择的图片张数
sizeType Array ['original', 'compressed'] 所选的图片的尺寸
sourceType Array ['album', 'camera'] 选择图片的来源
success function 接口调用成功的回调函数
fail function 接口调用失败的回调函数
complete function 接口调用结束的回调函数(调用成功、失败都会执行)

示例代码

wx.chooseImage({
  count: 1,
  sizeType: ['original', 'compressed'],
  sourceType: ['album', 'camera'],
  success(res) {
    // tempFilePath可以作为img标签的src属性显示图片
    const tempFilePaths = res.tempFilePaths
  }
})

实践

然后上一波实验代码,学完一定要实践,不然相当于没学!在实践中才能真正搞懂文档到底讲的什么。
今天的代码依然没有任何美化,只是功能的实践(大概这就是直男吧)

<!--pages/mt/mt.wxml-->
<button bindtap='ciBtn'>chooseImage</button>
<button bindtap='cmfBtn'>chooseMessageFile</button>
<button bindtap='piBtn'>previewImage</button>
<button bindtap='giiBtn'>getImageInfo</button>
<button bindtap='sitpaBtn'>saveImageToPhotosAlbum</button>
src: <text>{{info}}</text>
<view wx:for="{{p}}" wx:for-item="image">
    <image src="{{image}}" data-src="{{image}}" bindtap="previewImage"></image>
</view>
// pages/mt/mt.js
Page({

  /**
   * 页面的初始数据
   */
  data: {
    p:null,
    info:null
  },

  //选择图片,这里我设置可以选择两张
  ciBtn:function(){
    var that = this;
    wx.chooseImage({
      count:2,
      sizeType: ['original', 'compressed'],
      sourceType: ['album', 'camera'],
      success: function(res) {
        var tempFilePaths = res.tempFilePaths
        console.log(tempFilePaths)
        that.setData({
          p:tempFilePaths
        })
      },
    })
  },

  //预览图片
  piBtn:function(){
    wx.previewImage({
      urls:this.data.p,
      current: this.data.p[0],
    })
  },

  //获取图片信息,其实信息有很多,这里只打印了图片路径
  giiBtn:function(){
    var s = this.data.p[0];
    var that = this;
    wx.getImageInfo({
      src: s,
      success(res){
        that.setData({
          info: res.path
        })
      }
    })
  },

  //另外一种导入图片的方式,同时可以导入其他文件
  cmfBtn:function(){
    var that = this;
    wx.chooseImage({
      count: 10,
      type: 'image',
      success: function (res) {
        var tempFilePaths = res.tempFilePaths
        console.log(tempFilePaths)
        that.setData({
          p: tempFilePaths
        })
      },
    })
  },

  //保存图片到本地
  sitpaBtn:function(){
    wx.saveImageToPhotosAlbum({
      filePath: this.data.p[0],
      success(res){
        console.log('保存成功')
      }
    })
  }

})

要注意的是,这次代码里面没去做过多逻辑的处理,所以一定先上传图片再做其他的功能,否则我也不知道会出什么bug。。。

然后这里再提一点关于使用方面的问题,调试的时候其实可以不用每次都用console.log()去查看每一个变量的值,可以直接在控制台的appdata里面查看数据。会方便很多!

AppData的位置

好了,关于图片这部分的api就先看到这里吧。!

上一篇:微信开发之旅———Day6(远程请求)
下一篇:微信开发之旅———Day8(实战演练)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,919评论 6 502
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,567评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 163,316评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,294评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,318评论 6 390
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,245评论 1 299
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,120评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,964评论 0 275
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,376评论 1 313
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,592评论 2 333
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,764评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,460评论 5 344
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,070评论 3 327
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,697评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,846评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,819评论 2 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,665评论 2 354

推荐阅读更多精彩内容

  • 点击查看原文 Web SDK 开发手册 SDK 概述 网易云信 SDK 为 Web 应用提供一个完善的 IM 系统...
    layjoy阅读 13,758评论 0 15
  • 先引入JS 文件 this.wxShare() 在created里调用 首先登陆微信公众号 JSSDK使用步骤 步...
    寄鱼予海与你阅读 6,692评论 1 3
  • 微信小程序在无论在功能、文档及相关支持方面,都是优于前面几种微信账号类型,它提供了很多原生程序才有的接口,使得我们...
    未央大佬阅读 2,299评论 0 12
  • 微信小程序在无论在功能、文档及相关支持方面,都是优于前面几种微信账号类型,它提供了很多原生程序才有的接口,使得我们...
    伍华聪_开发框架阅读 1,600评论 0 53
  • 情缘一词,来自于一位可爱活泼的小女孩。她的名字叫冉情缘。虽然只有10岁,却很坚强。 当我第一次看到她得时候,是在病...
    乱跳的萝卜阅读 372评论 0 0