摘要:忙著忙著老大說(shuō)要生成海報(bào),有個(gè)活動(dòng)要給每個(gè)用戶來(lái)個(gè)分享圖。雖然我實(shí)現(xiàn)了寫個(gè)頁(yè)面調(diào)用之前生成長(zhǎng)截圖的服務(wù)。使用這段時(shí)間以來(lái)就是感覺(jué)這個(gè)編碼格式極其難受。網(wǎng)上查也不少前端技術(shù)處理我堂堂前端,怎么也得露一手吧。前端處理需要注意跨域空格等問(wèn)題。
我最近沒(méi)有摸魚,一直都在工作。只不過(guò)目前需要爬一點(diǎn)數(shù)據(jù) python 做的,之后看機(jī)會(huì)分享一下。
忙著忙著老大說(shuō)要生成海報(bào),有個(gè)活動(dòng)要給每個(gè)用戶來(lái)個(gè)分享圖。
想法PS 批處理?腳本? 能甩出去的活都甩出去,機(jī)智如我啊
python 處理圖像(PIL)。這么坑的想法,當(dāng)然不是我想的了。雖然我實(shí)現(xiàn)了
寫個(gè)頁(yè)面調(diào)用之前生成長(zhǎng)截圖的服務(wù)。之前有個(gè)為了方便分享微信,做了生成長(zhǎng)截圖的服務(wù)。寫個(gè)新的頁(yè)面用一下即可。
我堂堂前端er,怎么能一直用別的工具呢?我的錘子呢?
ps處理這個(gè)方案,經(jīng)過(guò)我調(diào)研行不通。(也有可能是我菜)
對(duì)于批量打碼,統(tǒng)一操作這類的還可以。
對(duì)于需要對(duì)應(yīng)名字之類的比較無(wú)力
老大說(shuō) python。py 使用 PIL 庫(kù) 寫起來(lái)還蠻簡(jiǎn)單的。
py 使用這段時(shí)間以來(lái)就是感覺(jué)這個(gè)編碼格式極其難受。有沒(méi)有大佬解救我一下。
txt 使用字體,輸出到對(duì)應(yīng)位置
image 圖片,覆蓋輸出到對(duì)應(yīng)位置。mask=img要注意針對(duì) png 來(lái)使用
qrcode 生成對(duì)應(yīng)二維碼
通過(guò)上面的類型,來(lái)增加我們代碼的擴(kuò)展性。
代碼# -*- coding: utf-8 -*- from PIL import Image, ImageDraw, ImageFont import qrcode import time; import re def AddMoney(data): bg = Image.new("RGBA", (data["width"], data["height"])) for item in data["list"]: print(item) if item["type"] == "qrcode": qr_pil_obj = qrcode.make(item["url"], border=0).resize((item["width"], item["height"]), Image.ANTIALIAS) bg.paste(qr_pil_obj,(item["x"],item["y"])) elif item["type"] == "image": extname = re.search( r"(jpg|png|jpeg)$", item["url"]).group() # 加載圖片 img = Image.open(item["url"]) # 縮放 if (item["width"]!= "" and item["height"] != ""): img.resize((item["width"], item["height"]), Image.ANTIALIAS) if extname == "png": bg.paste(img,(item["x"],item["y"]), mask=img) else: bg.paste(img,(item["x"],item["y"])) elif item["type"] == "text": draw = ImageDraw.Draw(bg) ttfront = ImageFont.truetype(item["ttfrontUrl"],item["ttfrontSize"]) draw.text((item["x"],item["y"]),unicode(item["txt"],"UTF-8"), fill=(0,0,0), font=ttfront) else: print("------------------------------") bg.save(data["outputName"]) data = { "width": 750, "height": 1334, "outputName": "./out-%s.png" % (str(time.time())), "list":[{"type":"image","url":"./avatar.jpg","x":10,"y":360,"width":750,"height":1334},{"type":"image","url":"./bg.png","x":0,"y":0,"width":750,"height":750},{"type":"qrcode","url":"https://www.lilnong.top","x":0,"y":0,"width":120,"height":120},{"type":"text","txt":"你這個(gè)死宅說(shuō)話","x":140,"y":560,"ttfrontUrl":"./abc.ttf","ttfrontSize":55},{"type":"text","txt":"還挺搞笑的","x":160,"y":630,"ttfrontUrl":"./abc.ttf","ttfrontSize":55}] } AddMoney(data)長(zhǎng)截圖
這個(gè)也是極好,是之前一個(gè) Node 的服務(wù)。省時(shí)省力。網(wǎng)上查也不少
前端技術(shù)處理我堂堂前端,怎么也得露一手吧。
基于上面的頁(yè)面已經(jīng)成功。我們想一下我們需要干什么?把 html 轉(zhuǎn)成 canvas,然后 canvas.toBlob,然后 download 美滋滋。
html2canvas 這是一個(gè)庫(kù),既然已經(jīng)有寫好的了,我們就不費(fèi)神了。(最難的一步。。。)
拿到 cavnas 調(diào)用 API, canvas.toBlob。
下載。這個(gè)就比較簡(jiǎn)單了,之前我寫過(guò) 前端培訓(xùn)-初級(jí)階段-場(chǎng)景實(shí)戰(zhàn)(2019-06-06)-下載文件&下載進(jìn)度
微信公眾號(hào)各種忘記發(fā)。補(bǔ)上補(bǔ)上
py 寫代碼是真的短。
前端處理需要注意跨域、URL空格等問(wèn)題。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/44061.html
摘要:忙著忙著老大說(shuō)要生成海報(bào),有個(gè)活動(dòng)要給每個(gè)用戶來(lái)個(gè)分享圖。雖然我實(shí)現(xiàn)了寫個(gè)頁(yè)面調(diào)用之前生成長(zhǎng)截圖的服務(wù)。使用這段時(shí)間以來(lái)就是感覺(jué)這個(gè)編碼格式極其難受。網(wǎng)上查也不少前端技術(shù)處理我堂堂前端,怎么也得露一手吧。前端處理需要注意跨域空格等問(wèn)題。 我最近沒(méi)有摸魚,一直都在工作。只不過(guò)目前需要爬一點(diǎn)數(shù)據(jù) python 做的,之后看機(jī)會(huì)分享一下。 忙著忙著老大說(shuō)要生成海報(bào),有個(gè)活動(dòng)要給每個(gè)用戶來(lái)個(gè)分...
摘要:支持等多種語(yǔ)言。全新發(fā)布低代碼海報(bào)生成器生成二維碼 fastposter 2.4.0 全新發(fā)布 低代碼海報(bào)生成器fastposter低代碼海報(bào)生成器,一分鐘完成海報(bào)開(kāi)發(fā)。支持??Java??、??Python??、??PHP??、 ??Go??、??JavaScript??等多種語(yǔ)言。v2.4.0 全新發(fā)布 電商級(jí)海報(bào)生成...
摘要:解析進(jìn)到首頁(yè)其實(shí)關(guān)鍵字在本地就隨機(jī)取完了,在首頁(yè)中的方法中就通過(guò)緩存了要畫的元素,比如關(guān)鍵字這里是圖片關(guān)鍵字解析語(yǔ)也是圖片畢竟微信小程序的不支持字體等等。 一、Canvas應(yīng)用的背景(個(gè)人理解)及基礎(chǔ)語(yǔ)法 背景 從2012年開(kāi)始,微信那個(gè)時(shí)候用戶的積累的量已經(jīng)非常大了,推出公眾號(hào),當(dāng)然大屏智能手機(jī)在那個(gè)時(shí)候也流行,傳統(tǒng)的大眾媒體逐步消亡,像微信公眾號(hào)這樣的新媒體盛行。企業(yè)的廣告投入開(kāi)始...
摘要:效果展示目前活動(dòng)還是在線狀態(tài),這里是最后生成海報(bào)的效果,掃描二維碼就可以進(jìn)入頁(yè)面。最后生成圖片的時(shí)候使用,這個(gè)是隱藏的,用戶不可見(jiàn),這樣還有一個(gè)優(yōu)點(diǎn),最終生成的海報(bào)大小是固定的,跟手機(jī)屏幕大小無(wú)關(guān)。方案看著很簡(jiǎn)單,實(shí)現(xiàn)的時(shí)候各種細(xì)節(jié)問(wèn)題。 引言 年后一直處于秣馬厲兵的狀態(tài),上周接到了一個(gè)緊急需求,為38婦女節(jié)做一個(gè)活動(dòng)頁(yè),主要功能是生成海報(bào),第一次做這種需求,我也是個(gè)半桶水前端,這里將...
閱讀 1820·2021-11-23 09:51
閱讀 927·2021-10-08 10:05
閱讀 3421·2021-09-26 09:55
閱讀 1030·2021-09-22 15:21
閱讀 1626·2021-09-09 09:33
閱讀 1236·2019-08-30 15:56
閱讀 1275·2019-08-30 15:55
閱讀 958·2019-08-30 13:19