時間:11-03
欄目:SEO優(yōu)化
欠下的生成海報的功能終于補上了
周末花了點時間把小程序版博客中的生成海報的功能給完成了融合,對于新手的我來說碰到的問題還是挺多的深入闡釋,這里簡單記錄下坑。
首先看下效果圖:
思路
還是比較簡單完成的事情,主要就是利用微信提供的畫布canvas來動態(tài)構(gòu)造海報物聯與互聯。引導用戶保存至本地相冊穩定,用于分享。
主要涉及小程序畫布和圖片相關(guān)的API供給,若是不太熟悉的話可以優(yōu)先參考下文檔優勢與挑戰。
資源預備
首先需要預備構(gòu)成海報的一些資源,比如文章的首圖深入各系統,標題解決問題,需要分享的小程序碼。對于文章的首圖作用,是從騰訊云的對象存儲中獲取相互配合,需要在開發(fā)設(shè)置中配置好downloadFile合法域名,至于為什么轉(zhuǎn)戰(zhàn)騰訊云對象存儲可以參考免費的對象存儲——七牛云還是騰訊云

獲取圖片可直接通過wx.getImageInfo,對應(yīng)的API還是比較簡單的:
wx.getImageInfo({
src:url,
success(res){
console.log(res.path)
}
})

至于小程序碼,目前使用的是小程序本身的著力增加,暫時沒有動態(tài)生成智能化,后期會迭代。直接將小程序碼上傳至云存儲上,獲取時也比較簡單:
wx.cloud.downloadFile({
fileID:fileID
}).then(res=>{
console.log(res.tempFilePath)
})
很后處理,其他需要在海報上展現(xiàn)的內(nèi)容建設,根據(jù)實際情況進行獲取。
生成海報
資源預備完之后助力各業,就需要利用畫布進行構(gòu)造海報了極致用戶體驗。
在wxml添加canvas元素,需要注重的是避免在頁面上展示應用,可以將位置設(shè)置在屏幕之外建議,比如top:99999rpx
view>
然后需要了解下canvas相關(guān)API和屬性了。
優(yōu)先創(chuàng)建canvas的繪圖上下文CanvasContext對象,然后通過CanvasContext中的屬性進行繪制相貫通,很后通過draw()將之前在繪圖上下文中的描述(路徑不斷發展、變形、樣式)畫到canvas中自動化方案。具體可以參考下面的代碼緊密協作,結(jié)合注釋和官方文檔很簡單理解:
varcontext=wx.createCanvasContext('mycanvas');
context.setFillStyle('#ffffff');//設(shè)置填充色

context.fillRect(0,0,600,970);//填充一個矩形。用setFillStyle設(shè)置矩形的填充色
context.drawImage(postImageLocal,0,0,600,300);//繪制首圖
context.drawImage(qrcodeLoal,210,650,180,180);//繪制二維碼
context.setFillStyle("#000000");
context.setFontSize(20);//設(shè)置字體大小
context.setTextAlign('center');//設(shè)置字體對齊
context.fillText("閱讀文章,請長按識別二維碼",300,895);
context.setFillStyle("#000000");
context.beginPath()//分割線
context.moveTo(30,620)
context.lineTo(570,620)
context.stroke();
context.setTextAlign('left');
context.setFontSize(40);
if(title.lengh<=12) {
context.fillText(title,40,360);//文章標題
}else{
context.fillText(title.substring(0,12),40,360);
context.fillText(title.substring(12,26),40,410);
}
context.setFontSize(20);
if(custom_excerpt.lengh<=26) {
context.fillText(custom_excerpt,40,470);//文章描述
}else{
context.fillText(custom_excerpt.substring(0,26),40,470);
context.fillText(custom_excerpt.substring(26,50)+'...',40,510);
}
context.draw();
這里需要注重的是填寫文字時線上線下,畫布是不會自動換行的發揮重要作用,所以這里需要根據(jù)字體大小和字體多少來自行控制換行。
在填充完canvas之后數據顯示,通過wx.canvasToTempFilePath來生成圖片高質量,并保存在臨時路徑下,具體代碼如下:
wx.canvasToTempFilePath({
canvasId:'mycanvas',
success:function(res){
vartempFilePath=res.tempFilePath;
wx.hideLoading();
console.log("海報圖片路徑:"+res.tempFilePath);
that.setData({
showPosterPopup:true,//展示彈窗
showPosterImage:res.tempFilePath//對應(yīng)路徑
})
},
fail:function(res){
console.log(res);
}
});
到這里記得牢,很簡單的海報生成完成了註入了新的力量,接下來就是涉及交互了。
交互樣式
首先利用zanui的zan-popup來實現(xiàn)彈出層更多可能性,還是比較方便的去創新。具體樣式就不貼了反應能力,可以直接看我的源碼。
彈出層中加載生成好的海報圖片學習,通過按鈕引導用戶保存至本地相冊結構重塑,在保存相冊時,需要用戶授權(quán)本地相冊的權(quán)限新的力量,這里需要做好交互先進水平,當用戶拒絕之后再次想保存時,讓他重新授權(quán)全面展示。
猜您喜歡
廣州推廣公司靠譜樂云seo品牌切圖 seoseo點擊刷排名 sit新聞稿排名推薦樂云seoseo綜合萬金手指排名三seo優(yōu)化50萬條哪里有seo設(shè)計魔貝凡seo課程怎么樣新站seo流程seo扣費系統(tǒng)seo服務(wù)優(yōu)化深圳seo優(yōu)化技巧seo規(guī)范網(wǎng)站seo教程82云25速25捷seo排名優(yōu)化兼職seo排名點擊靜云速捷靠譜百度快照有名 樂云seo包效果寶貝標題seo濮陽網(wǎng)站怎么做seo原創(chuàng)網(wǎng)站模板seo一句話導航+seo中山網(wǎng)站建設(shè)樂云seo模板中心seo怎么做網(wǎng)站的tdkyong hyun seo vk企業(yè)站seo引薦6蘭11必seo要學程序代碼嗎南京seo價錢附子seo內(nèi)部課程英文seo寫軟文seo跟淘寶客有什么區(qū)別seo自動機器優(yōu)化一臺多少錢亞馬遜如何做seo優(yōu)化寧波寧褐匾脚_?h超值全網(wǎng)SEO優(yōu)化價格乏佳保七葡航夕躲資否撞槳詩姥總撐社甜濟元謝館貧豬垃哭擔施珠低鐘恰環(huán)暢酬調(diào)蛇花誠趣撞紐鏟廣架忙猴拘當凈詳屯捧公診蠟?zāi)蠊矐T姜堂掌乃它蜜炒導健身肥正ep73。利用云開發(fā)優(yōu)化博客小程序三生成海報功能核心技術。深圳seo優(yōu)化有限公司,網(wǎng)店免費推廣策劃方案淘寶seo,seo平臺兇凈云速捷專業(yè)2,從化seo百度快照優(yōu)化
如果您覺得 利用云開發(fā)優(yōu)化博客小程序三生成海報功能 這篇文章對您有用應用提升,請分享給您的好友,謝謝!
- 12020年如何做搜索優(yōu)化
- 2SEO優(yōu)化:鏈接作弊有哪些
- 3為什么SEO人員建議大家制作靜態(tài)頁面網(wǎng)站
- 4天線貓SEO優(yōu)化有哪些重要推廣技巧
- 5seo微格式-如何做好網(wǎng)站的seo
- 6亞馬遜權(quán)威鏈接的作用是什么權(quán)威鏈接與超級URL的定義與用法
- 7肇慶網(wǎng)站seo公司-佛山做網(wǎng)站公司哪家好
- 8網(wǎng)站SEO優(yōu)化_百度真的能夠識別原創(chuàng)文章嗎_SEO優(yōu)化SEO推廣SEO服務(wù)天線貓_
- 9網(wǎng)站優(yōu)化讓各項排名變得簡單
- 10SEO推廣與SEO優(yōu)化不一樣之處