HTML副编、H5负甸、web轉(zhuǎn)圖片image的幾種方法總結(jié)

在即將跨入到2019年時,我接到了一個需求痹届,我們的APP新增了一個分享功能呻待,這個分享功能需要把嵌入在APP里的H5頁面轉(zhuǎn)換成圖片分享出去。
我們的實現(xiàn)思路是:
用戶點擊分享按鈕時队腐,調(diào)用API蚕捉,將當(dāng)前頁面URL傳遞給后臺,后臺將該H5頁面轉(zhuǎn)換成圖片返回給APP香到,APP將生成的圖片分享到微信。
這里邊核心難點是需要將html頁面完整完美的轉(zhuǎn)化成圖片格式。
經(jīng)過調(diào)研悠就,總結(jié)了3種開發(fā)難度低千绪、兼容多語言平臺的解決方案:

  • 第一種:PhantomJS,強烈推薦
  • 第二種:CutyCapt
  • 第三種:免費或付費現(xiàn)成API梗脾,pdfcrowd荸型、web2pdfconvert、url2png

第一種:PhantomJS
PhantomJS是一個用JavaScript編寫腳本的無頭web瀏覽器炸茧。它可以在Windows瑞妇、macOS、Linux和FreeBSD上運行梭冠。
我們知道辕狰,訪問一個WEB頁面需要經(jīng)過瀏覽器的解析,而PhantomJS就很強大了控漠,能夠在服務(wù)器中虛擬一個瀏覽器蔓倍,這樣就可以使用后臺語言模擬用戶在頁面的點擊操作,因此PhantomJS在自動化測試中應(yīng)用很廣盐捷。將html頁面轉(zhuǎn)換成圖片或者是pdf對PhantomJS來說偶翅,簡直是小餐一碟。
PhantomJS的官方網(wǎng)站:http://phantomjs.org/
官網(wǎng)的文檔相對來說很全面碉渡,包括的安裝聚谁、使用教程、api文檔滞诺,示例等等形导。
下面是根據(jù)官方示例寫的一個簡單方法:

var page = require('webpage').create();
var system = require('system');
var address = system.args[1];   // 截圖頁面地址
var output = system.args[2];    // 保存圖片名
page.viewportSize = { width: 414*2, height: 736*2 }; // 頁面初始高度
page.open(address, function (status) { // 打開頁面

        if (status === "success") { // 加載完成
                // 通過在JS獲取頁面的渲染高度
                var rect = page.evaluate(function() {                    
                    return document.getElementById('html')[0].getBoundingClientRect();
                });

                // 按照實際頁面的高度,設(shè)定渲染的寬高
                page.clipRect = {
                  top:    rect.top,
                  left:   rect.left,
                  width:  rect.width,
                  height: rect.height
                };
                // 預(yù)留一定的渲染時間
                window.setTimeout(function () {
                  page.render(output);
                  // var base64 = page.renderBase64('JPEG');
                  // console.log(base64);
                  page.close();
                  console.log('success');
                  phantom.exit();
                }, 3000);
        }
});

比如將上面代碼命名為“request.js”铭段,運行時傳兩個參數(shù)骤宣,第一個是web url地址,第二個是保持的圖片名稱:

./bin/phantomjs ./request.js http://www.reibang.com/u/ebe2021d707c tiantian.jpg

第二種:CutyCapt
CutyCapt是一個跨平臺命令行腳本序愚,用于將web頁面捕獲為各種向量和位圖格式憔披,包括SVG、PDF爸吮、PS芬膝、PNG、JPEG形娇、TIFF锰霜、GIF和BMP。
官網(wǎng):http://cutycapt.sourceforge.net/
根據(jù)官網(wǎng)安裝成功后運行桐早,如:

CutyCapt --url=http://www.reibang.com/u/ebe2021d707c --out=tiantian.jpg

第三種:現(xiàn)成API癣缅,pdfcrowd厨剪、web2pdfconvert、url2png
網(wǎng)絡(luò)上有很多專門提供將web頁面轉(zhuǎn)換成圖片的服務(wù)商友存,效果還都不錯祷膳。
我這里列出來了3個:
pdfcrowd:https://pdfcrowd.com/
web2pdfconvert:https://www.web2pdfconvert.com/to/jpg
url2png:https://www.url2png.com/
這些服務(wù)都提供有API接口,可直接調(diào)用屡立。
不過直晨,沒有白吃的午餐,免費使用有調(diào)用頻率和數(shù)量的限制膨俐,要想商用的話就得付費了勇皇。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市焚刺,隨后出現(xiàn)的幾起案子敛摘,更是在濱河造成了極大的恐慌,老刑警劉巖檩坚,帶你破解...
    沈念sama閱讀 218,546評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件着撩,死亡現(xiàn)場離奇詭異,居然都是意外死亡匾委,警方通過查閱死者的電腦和手機拖叙,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,224評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來赂乐,“玉大人薯鳍,你說我怎么就攤上這事“ご耄” “怎么了挖滤?”我有些...
    開封第一講書人閱讀 164,911評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長浅役。 經(jīng)常有香客問我斩松,道長,這世上最難降的妖魔是什么觉既? 我笑而不...
    開封第一講書人閱讀 58,737評論 1 294
  • 正文 為了忘掉前任惧盹,我火速辦了婚禮,結(jié)果婚禮上瞪讼,老公的妹妹穿的比我還像新娘钧椰。我一直安慰自己,他們只是感情好符欠,可當(dāng)我...
    茶點故事閱讀 67,753評論 6 392
  • 文/花漫 我一把揭開白布嫡霞。 她就那樣靜靜地躺著,像睡著了一般希柿。 火紅的嫁衣襯著肌膚如雪诊沪。 梳的紋絲不亂的頭發(fā)上养筒,一...
    開封第一講書人閱讀 51,598評論 1 305
  • 那天,我揣著相機與錄音端姚,去河邊找鬼闽颇。 笑死,一個胖子當(dāng)著我的面吹牛寄锐,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播尖啡,決...
    沈念sama閱讀 40,338評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼橄仆,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了衅斩?” 一聲冷哼從身側(cè)響起盆顾,我...
    開封第一講書人閱讀 39,249評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎畏梆,沒想到半個月后您宪,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,696評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡奠涌,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,888評論 3 336
  • 正文 我和宋清朗相戀三年宪巨,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片溜畅。...
    茶點故事閱讀 40,013評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡捏卓,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出慈格,到底是詐尸還是另有隱情怠晴,我是刑警寧澤,帶...
    沈念sama閱讀 35,731評論 5 346
  • 正文 年R本政府宣布浴捆,位于F島的核電站蒜田,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏选泻。R本人自食惡果不足惜冲粤,卻給世界環(huán)境...
    茶點故事閱讀 41,348評論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望滔金。 院中可真熱鬧色解,春花似錦、人聲如沸餐茵。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,929評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽忿族。三九已至锣笨,卻和暖如春蝌矛,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背错英。 一陣腳步聲響...
    開封第一講書人閱讀 33,048評論 1 270
  • 我被黑心中介騙來泰國打工入撒, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人椭岩。 一個月前我還...
    沈念sama閱讀 48,203評論 3 370
  • 正文 我出身青樓茅逮,卻偏偏與公主長得像,于是被迫代替她去往敵國和親判哥。 傳聞我的和親對象是個殘疾皇子献雅,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,960評論 2 355

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

  • iOS資源大全中文版 我想很多程序員應(yīng)該記得 GitHub 上有一個 Awesome - XXX 系列的資源整理。...
    Sean_Shi閱讀 4,435評論 0 45
  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫塌计、插件挺身、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 12,104評論 4 62
  • 知道簡書是在2016年的年初,現(xiàn)在已經(jīng)12月份了锌仅,才想起試試這個應(yīng)用章钾。總要寫點什么啊热芹,那就說說我的健身吧贱傀! 夏天的...
    橄欖妹妹閱讀 920評論 0 0
  • 今日體驗,今天上午檢修寶馬的漏油問題伊脓,仔細(xì)檢查了一下還是沒有發(fā)現(xiàn)別的地方漏油窍箍,重新處理了一下安裝反復(fù)試車都沒有出現(xiàn)。
    王全峰閱讀 128評論 0 0
  • 自從去年歷劫一場頂荒唐的匪夷所思的事件之后丽旅,幼稚的我發(fā)現(xiàn)自己竟get了新技能-處變不驚椰棘。這算不算因禍得福呢?
    kerry_ff98閱讀 164評論 0 0