工具地址 點我直達>>painter-custom-poster
因爲掛載在github page上,打開速度會慢一些,請耐心等待或自行解決git網速問題css
在作小程序時候,咱們常常會有一個需求,須要將小程序分享到朋友圈,可是朋友圈是不容許直接分享小程序,那咱們還有其餘的辦法解決嗎?答案確定是有的,即 canvas 生成個性化海報分享圖片到朋友圈html
那可不能夠開發一款生成海報的插件庫呢?git
以上的要求固然是能夠的,曾經的我也想嘗試開發一款出來,可是後來嘗試了幾款現成的工具以後就放棄了,畢竟輪子這個東西,是須要不斷維護更新的,另外已經有這麼多優秀現成的插件了,我爲什麼還要費力去寫呢,貢獻代碼豈不更美哉,如下是我收集的幾款github
嘮了這麼多,好像提供給你們插件就沒我什麼事情了...想走是不可能的 爲了可以製做出更酷炫的海報,我思考了許久 雖然有了插件後,只須要提供配置代碼就可以製做出一款海報來,可是我發現仍是有些許問題json
那我須要怎麼作呢,請點擊這個連接體驗>>painter-custom-poster 點擊左側例子展現中的任意一個例子,而後導入代碼就能看到效果圖,這下你應該能猜到了個人想法了canvas
目前工具一共分紅4部分小程序
用來將一些用戶設計的精美海報顯示出來,經過點擊對應的例子並將代碼導入畫布中微信小程序
顯示真實的海報效果,畫布裏添加的元素,均可以直接用鼠標進行拖動,旋轉,縮放操做api
第一排四個按鈕跨域
第二排五個按鈕
第三排
各類元素的詳細設置參數
激活對象是指鼠標點擊畫布上的元素,該對象會被藍色的邊框覆蓋,此時該對象被激活,能夠執行拖動 旋轉 縮放等操做 激活區只有對象被激活纔會出來,用來設置激活對象的各類配置參數,修改value值後,實時更新當前激活對象的對應狀態,點擊其餘區域,此模塊將隱藏
屬性 | 說明 | 默認 |
---|---|---|
rotate | 旋轉,按照順時針旋轉的度數 | 0 |
width、height | view 的寬度和高度 | |
top、left | 如 css 中爲 absolute 佈局時的做用 | 0 |
background | 背景顏色 | rgba(0,0,0,0) |
borderRadius | 邊框圓角 | 0 |
borderWidth | 邊框寬 | 0 |
borderColor | 邊框顏色 | #000000 |
shadow | 陰影 | '' |
能夠同時修飾 image、rect、text 等 。在修飾 text 時則至關於 text-shadow;修飾 image 和 rect 時至關於 box-shadow
使用方法:
shadow: 'h-shadow v-shadow blur color';
h-shadow: 必需。水平陰影的位置。容許負值。
v-shadow: 必需。垂直陰影的位置。容許負值。
blur: 必需。模糊的距離。
color: 必需。陰影的顏色。
舉例: shadow:10 10 5 #888888
複製代碼
你能夠在畫布的 background 屬性中使用如下方式實現 css 3 的漸變色,其中 radial-gradient 漸變的圓心爲 中點,半徑爲最長邊,目前不支持本身設置。
linear-gradient(-135deg, blue 0%, rgba(18, 52, 86, 1) 20%, #987 80%)
radial-gradient(rgba(0, 0, 0, 0) 5%, #0ff 15%, #f0f 60%)
複製代碼
!!!注意:顏色後面的百分比必定得寫。
屬性 | 說明 | 默認 |
---|---|---|
times | 控制生成插件代碼的寬度大小,好比畫布寬100,times爲2,生成的值爲200 | 1 |
屬性名稱 | 說明 | 默認值 |
---|---|---|
text | 字體內容 | 別跟我談感情,談感情傷錢 |
maxLines | 最大行數 | 不限,根據 width 來 |
lineHeight | 行高(上下兩行文字baseline的距離) | 1.3 |
fontSize | 字體大小 | 30 |
color | 字體顏色 | #000000 |
fontWeight | 字體粗細。僅支持 normal, bold | normal |
textDecoration | 文本修飾,支持none underline、 overline、 linethrough | none |
textStyle | fill: 填充樣式,stroke:鏤空樣式 | fill |
fontFamily | 字體 | sans-serif |
textAlign | 文字的對齊方式,分爲 left, center, right | left |
備註:
屬性 | 說明 | 默認 |
---|---|---|
url | 圖片路徑 | |
mode | 圖片裁剪、縮放的模式 | aspectFill |
mode參數詳解
若是你設計的海報很好看,而且願意開源貢獻,能夠貢獻你的海報代碼和縮略圖,例子代碼文件在example中,按順序排列,例如如今庫裏例子是example2.js,那你添加example3.js和example3.jpg圖片,事例能夠參考一下文件夾中源碼,而後在index.js中導出一下
代碼不要格式化,會報錯,請原模原樣複製到json字段裏
saveImgToLocal() {
const that = this;
setTimeout(() => {
wx.canvasToTempFilePath(
{
canvasId: 'k-canvas',
fileType: 'jpg',
quality: 0.2,
success: function(res) {
that.getImageInfo(res.tempFilePath);
},
fail: function(error) {
console.error(`canvasToTempFilePath failed, ${JSON.stringify(error)}`);
that.triggerEvent('imgErr', { error: error });
}
},
this
);
}, 300);
}
複製代碼
保存圖片放入對應文件夾,提交代碼等待合併
~ 創做不易,若是對你有幫助,請給個星星 star✨✨ 謝謝 ~