摘要:但是由于微信小程序中的組件與元素有較大差異,因此傳統(tǒng)的處理庫幾乎無法在小程序中使用。在調(diào)研了一些傳統(tǒng)瀏覽器端的項(xiàng)目后,我發(fā)現(xiàn)的功能比較完善,同時(shí)也比較容易對微信小程序進(jìn)行適配。由封裝而來,基于進(jìn)行了重寫,并針對微信小程序進(jìn)行了適配。
做這個(gè)項(xiàng)目的初衷是希望能夠開發(fā)一款不依賴服務(wù)端而純通過客戶端渲染為圖片添加濾鏡的小程序。但是由于微信小程序中的 canvas 組件與 DOM Canvas 元素有較大差異,因此傳統(tǒng)的 Canvas 處理庫幾乎無法在小程序中使用。在調(diào)研了一些傳統(tǒng)瀏覽器端的項(xiàng)目后,我發(fā)現(xiàn) CamanJS 的功能比較完善,同時(shí)也比較容易對微信小程序進(jìn)行適配。在閱讀完畢 CamanJS 源碼(順便學(xué)習(xí)了一下 CoffeeScript)以及學(xué)習(xí)了小程序的 canvas 組件的條條框框之后,wx-caman 就誕生了。wx-caman 由 CamanJS 封裝而來,基于 ES6 進(jìn)行了重寫,并針對微信小程序進(jìn)行了適配。其使用基本與 CamanJS 保持一致,同時(shí)剔除了無關(guān)功能,能夠?qū)π〕绦蛑械?canvas 進(jìn)行像素級別的圖像濾鏡處理。
wx-caman 支持多個(gè)常見圖片濾鏡處理,例如 Brightness、Contrast、Sepia、Saturation 等,同時(shí)還內(nèi)置了多個(gè)預(yù)設(shè)濾鏡例如 lomo、sunrise、sinCity 等,方便直接使用;支持多圖層混合,常見的混合模式 multiply、overlay 等也都悉數(shù)支持。
使用上,下面是一個(gè)簡單示例:
Page({ onReady: function (e) { // 使用 wx.createContext 獲取繪圖上下文 context var context = wx.createCanvasContext("firstCanvas") context.setStrokeStyle("#00ff00") context.setLineWidth(5) context.rect(0, 0, 200, 200) context.stroke() context.setStrokeStyle("#ff0000") context.setLineWidth(2) context.moveTo(160, 100) context.arc(100, 100, 60, 0, 2 * Math.PI, true) context.draw(false, function() { new WxCaman("firstCanvas", 300, 200, function () { this.brightness(10) this.contrast(30) this.sepia(60) this.saturation(-30) this.render() }) }) } })
想要了解更多可移步項(xiàng)目倉庫,歡迎 star,同時(shí)使用過程中有任何問題也歡迎提交 issue。
本文首發(fā)于我的博客(點(diǎn)此查看),歡迎關(guān)注。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/95596.html
摘要:本文會(huì)介紹位圖處理,矢量圖和圖像處理,重點(diǎn)是,并且最后會(huì)附上一個(gè)小應(yīng)用。以上列舉部分,更多備胎在此矢量圖處理講完位圖再說矢量圖。矢量圖在繪制圖標(biāo)商業(yè)動(dòng)畫元素上應(yīng)用非常廣范。 計(jì)算機(jī)圖像處理是一門很成熟的技術(shù),任何一門可操作系統(tǒng)接口的語言都能很輕易的實(shí)現(xiàn)各種處理操作。但是前端限于瀏覽器環(huán)境和接口限制,處理起來會(huì)有諸多不便,這里所說的前端圖像處理,是真的指不借助任何后端服務(wù)純前端實(shí)現(xiàn)的圖像...
摘要:本文會(huì)介紹位圖處理,矢量圖和圖像處理,重點(diǎn)是,并且最后會(huì)附上一個(gè)小應(yīng)用。以上列舉部分,更多備胎在此矢量圖處理講完位圖再說矢量圖。矢量圖在繪制圖標(biāo)商業(yè)動(dòng)畫元素上應(yīng)用非常廣范。 計(jì)算機(jī)圖像處理是一門很成熟的技術(shù),任何一門可操作系統(tǒng)接口的語言都能很輕易的實(shí)現(xiàn)各種處理操作。但是前端限于瀏覽器環(huán)境和接口限制,處理起來會(huì)有諸多不便,這里所說的前端圖像處理,是真的指不借助任何后端服務(wù)純前端實(shí)現(xiàn)的圖像...
摘要:運(yùn)行代碼的結(jié)果如下是大名鼎鼎的并且非常權(quán)威的圖像處理庫。允許使用不同的媒介,用于創(chuàng)建動(dòng)畫片,數(shù)字形象和數(shù)字藝術(shù),也可以用于圖像處理。從正面的角度看,他是一個(gè)可靈活調(diào)整以及一個(gè)很好的了解圖像處理算法的途徑。 文/ Tine譯/Mantra 附原文地址:http://blog.webkid.io/image-p... 如果你正在尋找更高效的辦法來處理或操縱你 web 項(xiàng)目中的圖片,那么這篇...
摘要:聲明濾鏡處理的代碼來自于,我這里只是做了一些小改動(dòng),使其能在微信小程序里使用。版本要求基礎(chǔ)庫簡介最近發(fā)現(xiàn)一個(gè)網(wǎng)頁上好用的濾鏡庫,濾鏡效果有幾十種,就稍微做了一些更改,使其能在微信小程序使用。 聲明 濾鏡處理的代碼99.9%來自于arahaya/ImageFilters.js,我這里只是做了一些小改動(dòng),使其能在微信小程序里使用。 版本要求 基礎(chǔ)庫 1.9.0 簡介 最近發(fā)現(xiàn)一個(gè)網(wǎng)頁上好用...
閱讀 2425·2021-09-01 10:41
閱讀 1445·2019-08-30 14:12
閱讀 512·2019-08-29 12:32
閱讀 2863·2019-08-29 12:25
閱讀 2937·2019-08-28 18:30
閱讀 1710·2019-08-26 11:47
閱讀 983·2019-08-26 10:35
閱讀 2593·2019-08-23 18:06