1. 程式人生 > >微信小程式 使用canvas繪圖

微信小程式 使用canvas繪圖

微信小程式的繪圖是使用canvas,canvas的使用和普通的h5的canvas使用一樣,沒有什麼區別

想使用canvas,首先是要在頁面是建立canvas標籤,如果只是想要獲得圖片,可以把canvas定位到頁面之外

<canvas style="width: 300px; height: 200px;" canvas-id="myCanvas"></canvas>
<button bindtap='click'>canvas繪圖</button>

然後就在js裡控制canvas繪圖,具體的繪圖方式可以參考微信小程式官方的API部分的繪圖

click:function(){
  // 使用 wx.createContext 獲取繪圖上下文 context
    let context = wx.createCanvasContext('firstCanvas')
    ctx.setFontSize(20);
    ctx.setFillStyle('#666');
    ctx.fillText('我是測試資訊', 30, 40);
}

canvas繪圖裡做一個圓形的圖片比較麻煩,因為微信小程式的繪圖並沒有裁剪圖片的API,所以只能曲線去完成,完成的思路是先呼叫save()方法儲存之前的操作,然後畫一個圓,再使用微信小程式繪圖裡的clip() 方法,這個方法會在原來的畫布上裁剪任意形狀,接下來的操作都只能在這個裁剪的區域內,區域外的操作無效,在完成操作後,再使用restore()方法恢復正常操作。

      ctx.save()
      ctx.beginPath()
      ctx.arc(100, 100, 25, 0, 2*Math.PI)
      ctx.clip()
      ctx.drawImage(imagePath, 25, 25)
      ctx.restore()
      ctx.draw()
在繪製圖片時,如果圖片不是本地的,地址應該是呼叫微信的下載圖片介面後返回的臨時地址

相關推薦

程式canvas繪圖網路圖片下載與promise all的應用

問題:如果海報需要儲存到手機的時候我們需要canvas繪圖實現,然而許多網路圖片需要本地下載之後才可以儲存到手機,官方提供的downloadFile方法雖然可以在成功的回撥中依次下載多張圖片,但是當圖片太多時候難免會造成回撥地獄,造成程式碼可讀性不強,程式碼臃腫

程序 | canvas繪圖

base 資深 none 高清 can 知識 status dff link 1、新的尺寸單位 rpx   rpx(responsive pixel): 可以根據屏幕寬度進行自適應。   規定屏幕寬為750rpx。如在 iPhone6 上,屏幕寬度為375px,共有750個

程序 canvas 繪圖問題總結

全局變量 矩形 wot hcm 像素 ces 地圖 源碼 order 業務中碰到微信小程序需要生成海報進行朋友圈分享,這個是非常常見的功能,沒想到實際操作的時候花了整整一天一夜才搞好,微信的 canvas 繪圖實在是太難用了,官方快點優化一下吧。 業務非常簡單,只需要將用到

程式 canvas 問題

微信小程式 canvas 問題 問題描述 場景:當前頁面用 canvas 畫了個圖片,獲取到臨時路徑;之後再用這個臨時路徑去畫圖,手機上會出現畫不出來或者畫不全的情況;開發者工具沒問題。 解決方案 原因不明,小程式的問題,儘量避免這種場景,沒有找到解決方案

程式 Canvas 自定義時間顯示器 數碼管顯示

微信小程式自定義時間顯示器Demo 廢話不多話,還是依舊上圖再說,哈哈 怎麼樣,效果還是不錯的吧,因專案要求,要畫出類似於數碼管顯示的時間樣式,沒辦法,雖然不咋過好弄,但工作畢竟得做,於是乎,樓主,花了3個小時在那裡硬生生的算座標,差不多還是給擼出來,樓主寫成了一個外掛,方便大

程式canvas繪製雷達圖

效果圖展示: 程式碼實現(具體實現): const DEFAULT_COLOR = '#FC9A00'; class Radar { constructor(options) { const { canvasId, width,

程式canvas 畫動態圓環百分比進度條例項 根據手機螢幕寬度自適應放大縮小

這裡是wxml程式碼: <component-analysis-report active="0" bindselectReport="selectReport"></component-analysis-report> <c

程式canvas元件簡單運用之塗鴉

原始碼 index.html <view class="container">     <!--畫布區域-->     <view class="canvas_area">         <!--注意:同一頁面中的 canva

程式Canvas的使用

本期介紹Canvas繪製圖片,涉及到如何繪製高清圖片丶使用網路圖片/本地圖片丶日期轉化(陰陽曆/星期換算)丶圖片適配手機型號等。 佈局介紹 此處分為4塊,上面展示圖片,中間展示公眾號二維碼&日期,下面展示一些文字和公司的logo和名稱 wxm

程式canvas畫圖、文字、字型換行,以及儲存圖片到本地的坑

頁面 :  <canvas style="width: 376px; height: 530px; background-color:#ddd;position:absolute;left:-1000px;" canvas-id="myCanvas"></

程式canvas文字換行效果

我們在canvas上繪製多行文字的時候,不可能一行一行的繪製,這時就需要到了換行這個功能。 文字換行 引數:1、canvas物件,2、文字 3、距離左側的距離 4、距離頂部的距離 5、(不用管)6、文字的寬度 //文字換行 引數:1、canvas物件,2、文字 3、距離

程式 canvas 內容(寬高) 相容不同機型

此功能並沒有做所有機型測試,後面會一個一個做一下,如需使用請先自作測試! canvas在小程式中設定的尺寸預設是px 並不是rpx的 所以需要轉換一下 PS:設計稿是750畫素 wx.getSystemInfo({ success: function (res

程式canvas的撤銷功能

小程式越來越簡單,提供給開發者的api也越來越多,微信這個平臺真的很厲害~~-------------------canvas畫板在塗鴉的時候,一不小心畫錯了一步,想撤銷上一步,還是在微信小程式中去實現這個功能,頓時卡住了,還是去翻百度,翻csdn、簡書,總結了幾個文件按照自

程式canvas 圖片繪製

看其他人寫的程式碼出現的其中的imageResource的路徑是網路路徑,這個在手機端預覽是有問題的圖片是需要下載的  onShow: function () { const that = this; wx.downloadFile({ url: that.data.img,

程式canvas動態時鐘

canvas時鐘效果圖:程式碼:wxml:<view style='width:100%;height:{{canvasHeight}}px' catchtap='goCountdown'catchlongtap='touchstart' catchtouchend='

程式canvas生成圖片儲存到本地 部分全面屏手機顯示出生成的圖片

問題總結:     1,canvas生成的圖片隱藏不了(下文解決)     2,網路圖片開發工具顯示但是真機顯示不了 (下文解決)     3,canvas生成的圖片清晰度問題 jpg (圖片的質量,目前僅對 jpg 有效。取值範圍為 (0, 1],不在範圍內時當作 1

程式canvas合成圖片 分享

先要獲取圖片的資訊  然後將需要合成的內容用canvas繪製出來,得到一個合成好的畫布,接下來用 wx.canvasToTempFilePath 把當前畫布指定區域的內容匯出生成指定大小的圖片,並返回檔案路徑。這個時候的路徑 是微信的臨時路徑,瀏覽器是訪問不了的,因此需要請求

程式 使用canvas繪圖

微信小程式的繪圖是使用canvas,canvas的使用和普通的h5的canvas使用一樣,沒有什麼區別想使用canvas,首先是要在頁面是建立canvas標籤,如果只是想要獲得圖片,可以把canvas定位到頁面之外<canvas style="width: 300px;

程式(四)canvas繪圖並儲存到手機相簿並分享到朋友圈和fileText繪製文字進行自動換行

思路 首先準備好一張圖片,本地圖片和網路圖片均可作為你的背景圖小程式目前不支援截圖,這裡講解本地圖片。 會用到 wx.createCanvasContext(#獲取畫布的id)、 drawImage(

程式(學習六) -- 回退Canvas繪圖

關於Canvas如何繪製塗鴉,請看上一章 該節是基於上一節做的修改,佈局和樣式表都一樣。 <view class="box_box6" bindtap="recoverCanvas"> <image src='/images/re