日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關咨詢
選擇下列產(chǎn)品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關閉右側工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
創(chuàng)新互聯(lián)小程序云教程:云開發(fā)圖像處理

一、二維碼qrcode

在移動互聯(lián)網(wǎng)時代,二維碼是一個非常重要的入口,有時候我們需要將一些文本、網(wǎng)址乃至文件、圖片、名片等信息放置到一個小小的二維碼里,讓用戶可以通過手機掃碼的方式來獲取傳遞的信息。云函數(shù)也可以借助于第三方模塊,比如node-qrcode來創(chuàng)建二維碼。

站在用戶的角度思考問題,與客戶深入溝通,找到駐馬店網(wǎng)站設計與駐馬店網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗,讓設計與互聯(lián)網(wǎng)技術結合,創(chuàng)造個性化、用戶體驗好的作品,建站類型包括:網(wǎng)站制作、成都網(wǎng)站建設、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣、域名注冊、網(wǎng)頁空間、企業(yè)郵箱。業(yè)務覆蓋駐馬店地區(qū)。

技術文檔:node-qrcode Github地址

使用開發(fā)者工具,創(chuàng)建一個云函數(shù),如qrcode,然后在package.json增加qrcode最新版latest的依賴并用npm install安裝:

"dependencies": {
    "qrcode": "latest"
  }

然后再在index.js輸入如下代碼,這里會先將創(chuàng)建的二維碼寫入到臨時文件夾,然后再用fs.createReadStream方法讀取圖片,上傳到云存儲,還是以云存儲為過渡,實現(xiàn)文件由服務端到小程序端的一個操作。

const cloud = require('wx-server-sdk')
const fs = require('fs')
const QRCode = require('qrcode')
cloud.init({
    env: cloud.DYNAMIC_CURRENT_ENV
  })
exports.main = async (event, context) => {
//text為二維碼里包含的內(nèi)容,將創(chuàng)建的二維碼圖片先存儲到/tmp臨時文件夾里,命名為qrcode.png
  const text="二維碼里的有騰訊云云開發(fā)"
  await QRCode.toFile('/tmp/qrcode.png',text, {
  color: {
    dark: '#00F',  // 藍點
    ight: '#0000' // 透明底
  }
}, function (err) {
    if (err) throw err
    console.log('done')
   })


  //讀取存儲到/tmp臨時文件夾里的二維碼圖片并上傳到云存儲里,返回fileID到小程序端
  const fileStream = await fs.createReadStream('/tmp/qrcode.png')
  return await cloud.uploadFile({
    cloudPath: 'qrcode.jpg',
    fileContent: fileStream,
  })
}

執(zhí)行云函數(shù)之后就能在云存儲里看到我們生成的二維碼圖片qrcode.jpg了。如果想要深度定制更加符合你要求的二維碼,可以去翻閱上面給的技術文檔鏈接。

二、Sharp高速圖像處理庫

sharp是一個高速圖像處理庫,可以很方便的實現(xiàn)圖片編輯操作,如裁剪、格式轉換、旋轉變換、濾鏡添加、圖片合成(如添加水?。?、圖片拼接等,支持JPEG, PNG, WebP, TIFF, GIF 和 SVG格式。在云函數(shù)端使用sharp來處理圖片,而云存儲則可以作為服務端和小程序端來傳遞圖片的橋梁。

由于圖片處理是一件非常消耗性能的事情,不僅會對云函數(shù)的內(nèi)存有要求,也可能會造成云函數(shù)的超時,以下只是研究使用云函數(shù)來處理圖片的可行性,大家在實際開發(fā)中不要這么處理,建議使用云開發(fā)的拓展能力來對圖像進行處理,功能更加強大(在后面的章節(jié)里,我們會介紹)。

技術文檔:sharp官方技術文檔

使用開發(fā)者工具,創(chuàng)建一個云函數(shù),如sharp,然后在package.json增加node-qrcode最新版latest的依賴,并右鍵云函數(shù)目錄選擇在終端中打開輸入命令npm install安裝依賴:

"dependencies": {
    "sharp": "latest"
 }

然后再在index.js輸入如下代碼,這里我們假定圖片來源是云存儲,我們需要先下載圖片,然后用sharp對圖片進行處理,處理完之后再把圖片傳回云存儲。

const cloud = require('wx-server-sdk')
const fs = require('fs')
const path = require('path')
cloud.init({
    env: cloud.DYNAMIC_CURRENT_ENV,
})
const sharp = require('sharp');
exports.main = async (event, context) => {


//這里換成自己的fileID,也可以在小程序端上傳文件之后,把fileID傳進來event.fileID
    const fileID = 'cloud://xly-xrlur.786c-xly-xrlur-1300446086/1572315793628-366.png'


//要用云函數(shù)處理圖片,需要先下載圖片,返回的圖片類型為Buffer
    const res = await cloud.downloadFile({
      fileID: fileID,
    })
    const buffer = res.fileContent  


//sharp對圖片進行處理之后,保存為output.png,也可以直接保存為Buffer
    await sharp(buffer).rotate().resize(200).toFile('output.png')
// 云函數(shù)讀取模塊目錄下的圖片,并上傳到云存儲
    const fileStream = await fs.createReadStream(path.join(__dirname, 'output.png'))
    return await cloud.uploadFile({
        cloudPath: 'sharpdemo.jpg',
        fileContent: fileStream,
    })
}

也可以讓sharp不需要先toFile轉成圖片,而是直接轉成Buffer,這樣就可以直接作為參數(shù)傳給fileContent上傳到云存儲,如:

const buffer2 = await sharp(buffer).rotate().resize(200).toBuffer();
    return await cloud.uploadFile({
        cloudPath: 'sharpdemo2.jpg',
        fileContent: buffer2,
    })

需要說明的是sharp有一定的前置條件,Node.js 的版本需要是v10.13.0+,以及云函數(shù)所在的服務器配置了libvips binaries,目前云開發(fā)的云函數(shù)不太支持,未來云開發(fā)會升級Nodejs的版本。關于圖片處理的庫,我們也可以去Github awesome-nodejs 項目里去翻翻看有沒有其他合適的解決方案,不過更加推薦的是使用云開發(fā)的圖像處理拓展能力,更或者說強烈建議所有有圖片處理需求的用戶都應該安裝圖像處理拓展能力。


新聞標題:創(chuàng)新互聯(lián)小程序云教程:云開發(fā)圖像處理
網(wǎng)站路徑:http://m.5511xx.com/article/cdhiojd.html