仿簡書將網(wǎng)頁生成圖片分享

這個需求和簡書的有點(diǎn)類似但不完全一致姊途,主要是用戶點(diǎn)擊分享按鈕涉瘾,就會將頁面指定的一個區(qū)域生成圖片并允許分享到微博微信等社交平臺,并且要在 web 和 pc 瀏覽器都實(shí)現(xiàn)捷兰,而且生成的圖片一致立叛,這需求就略變態(tài)了。

app 端肯定好實(shí)現(xiàn)贡茅, webview 控件可以很簡單的將頁面捕捉為圖片囚巴,網(wǎng)上找到的也大部分是這樣。pc 瀏覽器端也好實(shí)現(xiàn)友扰,可以用 html2canvas。

html2canvas https://github.com/niklasvh/html2canvas

接下來大致思路就很清晰了庶柿,我不生產(chǎn)代碼村怪,我只是代碼的搬運(yùn)工「÷可以考慮在要分享的這個頁面上引用 html2canvas甚负,并且給定一個調(diào)用方法,例如:

function shot() {
    html2canvas(document.body, {
        onrendered: function (canvas) {
            // TODO
        }
    });
}

這個方法如果是 pc 瀏覽器直接通過按鈕點(diǎn)擊調(diào)用审残,如果是 app 梭域,可以用過 webview 控件調(diào)用。

onrendered 的回調(diào)的參數(shù)是一個 canvas搅轿,可以使用toDataURL方法將它轉(zhuǎn)為圖片的 base64 字符串病涨。

var src = canvas.toDataURL("image/jpeg");

接下來服務(wù)器需要保存這個圖片了,因?yàn)榉窒砉δ芏疾荒芊窒硪粋€ canvas 或者 base64 編碼后的圖片璧坟,這個好辦既穆,用 ajax 提交 base64 字符串到服務(wù)器,讓它保存雀鹃。

$.post('/Thumb/GetImageUrl', { base64: src }, function (rs) {
    console.log(rs);
});

我這里服務(wù)器用的 ASP.NET MVC幻工,C# 處理這么個簡單的功能,兩行代碼足矣黎茎。

byte[] arr = Convert.FromBase64String(base64String);
Image img = Image.FromStream(new MemoryStream(arr));

在 GetImageUrl 這個 Action 里保存 img 到文件囊颅,并返回圖片 url 即可,$.post 的 onSuccess 回調(diào)里的 rs 就是這個圖片的 url, app 端可以通過 js 調(diào)用 java 代碼踢代,下載到這個圖片分型分享盲憎,PC 瀏覽器則直接可以把這個 url 傳給微博等分享接口了。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末奸鬓,一起剝皮案震驚了整個濱河市焙畔,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌串远,老刑警劉巖宏多,帶你破解...
    沈念sama閱讀 219,039評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異澡罚,居然都是意外死亡伸但,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,426評論 3 395
  • 文/潘曉璐 我一進(jìn)店門留搔,熙熙樓的掌柜王于貴愁眉苦臉地迎上來更胖,“玉大人,你說我怎么就攤上這事隔显∪捶粒” “怎么了?”我有些...
    開封第一講書人閱讀 165,417評論 0 356
  • 文/不壞的土叔 我叫張陵括眠,是天一觀的道長彪标。 經(jīng)常有香客問我,道長掷豺,這世上最難降的妖魔是什么捞烟? 我笑而不...
    開封第一講書人閱讀 58,868評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮当船,結(jié)果婚禮上题画,老公的妹妹穿的比我還像新娘。我一直安慰自己德频,他們只是感情好苍息,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,892評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著抱婉,像睡著了一般档叔。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上蒸绩,一...
    開封第一講書人閱讀 51,692評論 1 305
  • 那天衙四,我揣著相機(jī)與錄音,去河邊找鬼患亿。 笑死传蹈,一個胖子當(dāng)著我的面吹牛押逼,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播惦界,決...
    沈念sama閱讀 40,416評論 3 419
  • 文/蒼蘭香墨 我猛地睜開眼挑格,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了沾歪?” 一聲冷哼從身側(cè)響起漂彤,我...
    開封第一講書人閱讀 39,326評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎灾搏,沒想到半個月后挫望,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,782評論 1 316
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡狂窑,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,957評論 3 337
  • 正文 我和宋清朗相戀三年媳板,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片泉哈。...
    茶點(diǎn)故事閱讀 40,102評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡蛉幸,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出丛晦,到底是詐尸還是另有隱情奕纫,我是刑警寧澤,帶...
    沈念sama閱讀 35,790評論 5 346
  • 正文 年R本政府宣布烫沙,位于F島的核電站若锁,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏斧吐。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,442評論 3 331
  • 文/蒙蒙 一仲器、第九天 我趴在偏房一處隱蔽的房頂上張望煤率。 院中可真熱鬧,春花似錦乏冀、人聲如沸蝶糯。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,996評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽昼捍。三九已至,卻和暖如春肢扯,著一層夾襖步出監(jiān)牢的瞬間妒茬,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,113評論 1 272
  • 我被黑心中介騙來泰國打工蔚晨, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留乍钻,地道東北人肛循。 一個月前我還...
    沈念sama閱讀 48,332評論 3 373
  • 正文 我出身青樓,卻偏偏與公主長得像银择,于是被迫代替她去往敵國和親多糠。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,044評論 2 355

推薦閱讀更多精彩內(nèi)容

  • 第一部分 HTML&CSS整理答案 1. 什么是HTML5浩考? 答:HTML5是最新的HTML標(biāo)準(zhǔn)夹孔。 注意:講述HT...
    kismetajun閱讀 27,486評論 1 45
  • 點(diǎn)擊查看原文 Web SDK 開發(fā)手冊 SDK 概述 網(wǎng)易云信 SDK 為 Web 應(yīng)用提供一個完善的 IM 系統(tǒng)...
    layjoy閱讀 13,768評論 0 15
  • Swift1> Swift和OC的區(qū)別1.1> Swift沒有地址/指針的概念1.2> 泛型1.3> 類型嚴(yán)謹(jǐn) 對...
    cosWriter閱讀 11,103評論 1 32
  • 本文適用人群 需要在微信wap頁開發(fā)分享海報功能的前端程序員們 想要了解html2canvas庫的吃瓜群眾 掙扎在...
    朝顏vivian閱讀 10,165評論 4 17
  • 仍然是尾魚的書,看慣了言情析孽,她的懸疑靈異愛情小說簡直是清新脫俗搭伤。她的書總是讓人讀來既害怕卻又忍不住接著讀。我從怨氣...
    無常之常閱讀 2,714評論 0 2