成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專(zhuān)欄INFORMATION COLUMN

Laravel 生成小程序圖文海報(bào)最佳方案之一

piglei / 995人閱讀

摘要:微信小程序官方并未提供分享到朋友圈的方法,所以目前基本整個(gè)行業(yè)都是使用生成圖文海報(bào)發(fā)到朋友圈,然后識(shí)別太陽(yáng)碼進(jìn)入到小程序。背景圖片和微信頭像合成后清晰度不夠。

微信小程序官方并未提供分享到朋友圈的方法,所以目前基本整個(gè)行業(yè)都是使用生成圖文海報(bào)發(fā)到朋友圈,然后識(shí)別太陽(yáng)碼進(jìn)入到小程序。

通過(guò)谷歌或者百度有很多同學(xué)已經(jīng)提供了一些解決方案,但是在我們使用后效果并不是很理想,主要體現(xiàn)在以下方面:

通過(guò)PHP寫(xiě)入的字體效果并不理想。

背景圖片和微信頭像合成后清晰度不夠。

無(wú)法實(shí)現(xiàn)一些復(fù)雜的效果。

實(shí)現(xiàn)過(guò)程也較復(fù)雜。

最終我們找了一種認(rèn)為非常合理的實(shí)現(xiàn)方式,就是基于 PhantomJS 實(shí)現(xiàn),通過(guò) PhantomJS 隱形瀏覽器截圖的功能來(lái)生成海報(bào)。

PhantomJS是一個(gè)基于webkit的JavaScript API。它使用QtWebKit作為它核心瀏覽器的功能,使用webkit來(lái)編譯解釋執(zhí)行JavaScript代碼。任何你可以在基于webkit瀏覽器做的事情,它都能做到。它不僅是個(gè)隱形的瀏覽器,提供了諸如CSS選擇器、支持Web標(biāo)準(zhǔn)、DOM操作、JSON、HTML5、Canvas、SVG等,同時(shí)也提供了處理文件I/O的操作,從而使你可以向操作系統(tǒng)讀寫(xiě)文件等。PhantomJS的用處可謂非常廣泛,諸如網(wǎng)絡(luò)監(jiān)測(cè)、網(wǎng)頁(yè)截屏、無(wú)需瀏覽器的 Web 測(cè)試、頁(yè)面訪(fǎng)問(wèn)自動(dòng)化等。

有以下優(yōu)點(diǎn):

基于html可實(shí)現(xiàn)復(fù)雜的文字,圖片,陰影效果。

清晰度和文件大小合理

使用簡(jiǎn)單、即插即用

包地址:laravel-miniprogram-poster 求 star : )

體驗(yàn)

掃碼進(jìn)入商品詳情頁(yè)分享生成圖文體驗(yàn)

安裝
composer require ibrand/laravel-miniprogram-poster 

低于 Laravel5.5 版本,config/app.php 文件中 "providers" 添加iBrandPosterPhantoMmagickServiceProvider::class

圖片保存在 storage/app/public 下所以需要執(zhí)行 php artisan storage:link

如需自定義配置請(qǐng)執(zhí)行 php artisan vendor:publish --provider="iBrandPosterPhantoMmagickServiceProvider" --tag="config"

配置項(xiàng)
    return [
        //圖片存儲(chǔ)位置
        "disks"      => [
            "MiniProgramShare" => [
                "driver"     => "local",
                "root"       => storage_path("app/public/share"),
                "url"        => env("APP_URL") . "/storage/share",
                "visibility" => "public",
            ],
        ],
        //圖片寬度
        "width"      => "575px",
        //放大倍數(shù)
        "zoomfactor" => 1.5,
        //0-100,100質(zhì)量最高
        "quality"    => 100,
        //是否壓縮圖片
        "compress"   => true,
    ];
使用
use iBrandMiniprogramPosterMiniProgramShareImg;
    
$url = "https://www.ibrand.cc/";
$result = MiniProgramShareImg::generateShareImage($url);

返回結(jié)果:

    [
        "url"  => "http://xxx.png",   圖片訪(fǎng)問(wèn)url
        "path" => "path/to/image", 圖片文件路徑
    ]
字體安裝

如果需要實(shí)現(xiàn)復(fù)雜的字體效果,需要安裝字體,比如在 centos 上就沒(méi)有微軟雅黑的字體,所以如果生成的圖片有指定的特殊字體,需要在服務(wù)器上進(jìn)行安裝。

window 將下載的字體文件復(fù)制到C:WindowsFonts目錄下或者雙擊字體文件進(jìn)行安裝

mac 下載的字體文件 雙擊字體文件進(jìn)行安裝

centos

# 安裝微軟雅黑
wget -P /tmp/ https://iyoyo.oss-cn-hangzhou.aliyuncs.com/mirror/fonts/msyh.ttf
wget -P /tmp/ https://iyoyo.oss-cn-hangzhou.aliyuncs.com/mirror/fonts/msyhbd.ttf
wget -P /tmp/ https://iyoyo.oss-cn-hangzhou.aliyuncs.com/mirror/fonts/msyhl.ttf
cd /usr/share/fonts/lyx/
mkdir chinese
cd chinese
mv /tmp/msyhbd.ttf ./
chmod 755 *.ttf
yum -y install mkfontscale
mkfontscale
mkfontdir
fc-cache -fv
Resource

項(xiàng)目基于PhantomMagick

討論交流

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/29537.html

相關(guān)文章

  • 微信程序 海報(bào)生成踩坑記

    摘要:最近有個(gè)需求是要生成分享海報(bào),讓用戶(hù)可以將圖片保存到本地然后分享到朋友圈。本來(lái)以為是一個(gè)很簡(jiǎn)單的需求,可是萬(wàn)萬(wàn)沒(méi)想到,微信會(huì)這么坑。 最近有個(gè)需求是要生成分享海報(bào),讓用戶(hù)可以將圖片保存到本地然后分享到朋友圈。本來(lái)以為是一個(gè)很簡(jiǎn)單的需求,可是萬(wàn)萬(wàn)沒(méi)想到,微信會(huì)這么坑。剛開(kāi)始的思路是這樣的: 后臺(tái)根據(jù)小程序傳過(guò)來(lái)的參數(shù)獲取對(duì)應(yīng)的小程序碼,然后與背景圖合成之后將base64格式的圖片傳給小程...

    lidashuang 評(píng)論0 收藏0
  • [拆彈時(shí)刻]程序canvas生成海報(bào)(二)---優(yōu)化方案

    摘要:注意如果用戶(hù)一開(kāi)始沒(méi)有微信授權(quán),生成海報(bào)時(shí)又必須要用戶(hù)頭像不能使用默認(rèn)的話(huà),那就只能老老實(shí)實(shí)走之前的流程了。組件名稱(chēng)終端類(lèi)型微信版本觸發(fā)方法關(guān)于的調(diào)用方法相冊(cè)權(quán)限需要你提供保存相冊(cè)權(quán)限獲取相冊(cè)權(quán)限成功,給出再次點(diǎn)擊圖片保存到相冊(cè)的提示。 showImg(https://segmentfault.com/img/bVbs5V8?w=343&h=517);海報(bào)生成示例 海報(bào)生成速度緩慢...

    LittleLiByte 評(píng)論0 收藏0
  • 程序·云開(kāi)發(fā)打造功能全面的博客程序丨實(shí)戰(zhàn)

    摘要:用小程序云開(kāi)發(fā)將博客小程序常用功能一網(wǎng)打盡本文介紹博客小程序的詳情頁(yè)的功能按鈕如何實(shí)現(xiàn),具體包括評(píng)論點(diǎn)贊收藏和海報(bào)功能,這里記錄下整個(gè)實(shí)現(xiàn)過(guò)程和實(shí)際編碼中的一些坑??紤]到小程序本身的大小限制,使用的方式是最佳的。 用小程序·云開(kāi)發(fā)將博客小程序常用功能一網(wǎng)打盡 本文介紹mini博客小程序的詳情頁(yè)的功能按鈕如何實(shí)現(xiàn),具體包括評(píng)論、點(diǎn)贊、收藏和海報(bào)功能,這里記錄下整個(gè)實(shí)現(xiàn)過(guò)程和實(shí)際編碼中的一...

    cc17 評(píng)論0 收藏0
  • 程序·云開(kāi)發(fā)打造功能全面的博客程序丨實(shí)戰(zhàn)

    摘要:用小程序云開(kāi)發(fā)將博客小程序常用功能一網(wǎng)打盡本文介紹博客小程序的詳情頁(yè)的功能按鈕如何實(shí)現(xiàn),具體包括評(píng)論點(diǎn)贊收藏和海報(bào)功能,這里記錄下整個(gè)實(shí)現(xiàn)過(guò)程和實(shí)際編碼中的一些坑。考慮到小程序本身的大小限制,使用的方式是最佳的。 用小程序·云開(kāi)發(fā)將博客小程序常用功能一網(wǎng)打盡 本文介紹mini博客小程序的詳情頁(yè)的功能按鈕如何實(shí)現(xiàn),具體包括評(píng)論、點(diǎn)贊、收藏和海報(bào)功能,這里記錄下整個(gè)實(shí)現(xiàn)過(guò)程和實(shí)際編碼中的一...

    flybywind 評(píng)論0 收藏0
  • Canvas繪圖在微信程序中的應(yīng)用:生成個(gè)性化海報(bào)

    摘要:解析進(jìn)到首頁(yè)其實(shí)關(guān)鍵字在本地就隨機(jī)取完了,在首頁(yè)中的方法中就通過(guò)緩存了要畫(huà)的元素,比如關(guān)鍵字這里是圖片關(guān)鍵字解析語(yǔ)也是圖片畢竟微信小程序的不支持字體等等。 一、Canvas應(yīng)用的背景(個(gè)人理解)及基礎(chǔ)語(yǔ)法 背景 從2012年開(kāi)始,微信那個(gè)時(shí)候用戶(hù)的積累的量已經(jīng)非常大了,推出公眾號(hào),當(dāng)然大屏智能手機(jī)在那個(gè)時(shí)候也流行,傳統(tǒng)的大眾媒體逐步消亡,像微信公眾號(hào)這樣的新媒體盛行。企業(yè)的廣告投入開(kāi)始...

    vpants 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<