1. 程式人生 > 其它 >node canvas 伺服器端canvas 進行圖片組合

node canvas 伺服器端canvas 進行圖片組合

有時基於伺服器端的image 生成是比較重要的,比如一些安全特性,更好的控制圖片的儲存,以及圖片畫素字型,以及還想使用canvas的一些程式設計能力

參考使用

const { createCanvas, loadImage } = require('canvas')
const canvas = createCanvas(1000, 500)
const ctx = canvas.getContext('2d')
 
// Write "Awesome!"
ctx.font = '30px Impact'
ctx.rotate(0.1)
ctx.fillText('測試中文!', 50, 100)
 
// Draw line under text
var text = ctx.measureText('榮dalong!')
ctx.strokeStyle = 'rgba(0,0,0,0.5)'
ctx.beginPath()
ctx.lineTo(50, 102)
ctx.lineTo(50 + text.width, 102)
ctx.stroke()
 
// Draw cat with lime helmet
loadImage('dalong-app.png').then((image) => {
  ctx.drawImage(image, 200, 50, 1000, 500)
 
  console.log('<img src="' + canvas.toDataURL() + '" />')
})

效果

 

 

說明

基於server端canvas 的好處比較明顯,就是比較靈活,比較好優化,缺點也是有的,就是效能以及網路開銷(優化好了也是會不錯的)同時也便於資料
分析

參考資料

https://github.com/niklasvh/html2canvas
https://www.npmjs.com/package/canvas
https://www.npmjs.com/package/jsdom
https://github.com/css/csso


https://github.com/csstree/csstree
https://www.npmjs.com/package/html-to-image