国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

php curl 優(yōu)化下載微信頭像

ZweiZhao / 886人閱讀

摘要:做過(guò)微信網(wǎng)頁(yè)開(kāi)發(fā)的同學(xué)肯定遇到過(guò)這樣的需求,基于一張背景圖生成用戶推廣海報(bào),上面需要有推廣二維碼用戶頭像用戶名稱等等。

做過(guò)微信網(wǎng)頁(yè)開(kāi)發(fā)的同學(xué)肯定遇到過(guò)這樣的需求,基于一張背景圖生成用戶推廣海報(bào),上面需要有推廣二維碼、用戶頭像、用戶名稱等等。本來(lái)應(yīng)該是一個(gè)很普通的需求,使用php的gd庫(kù)就很容易合成,但是最近在生成這樣海報(bào)的時(shí)候,發(fā)現(xiàn)時(shí)間長(zhǎng)達(dá)19s,最后發(fā)現(xiàn)問(wèn)題卡在遠(yuǎn)程拉去微信頭像上,所以解決辦法有兩個(gè)。
方法一

提前把用戶微信頭像下載下來(lái)保存在自己的服務(wù)器上,不過(guò)我使用七牛云,然后自己服務(wù)器又保存一堆用戶頭像,覺(jué)得太糟糕了,所以拋棄。

方法二

使用隊(duì)列,因?yàn)槭褂?b>laravel,所以很容易就可以把這種費(fèi)時(shí)的任務(wù)放到后臺(tái),自己去跑吧。剛開(kāi)始采用這種方法,后來(lái)發(fā)現(xiàn),如果用戶操作很快,一下就跑到生成海報(bào)的那一步,可能隊(duì)列還沒(méi)有跑完,或者隊(duì)列失敗了。所以某種程度上會(huì)給用戶一種懵逼的感覺(jué),不知道怎么就沒(méi)有生成。

方法三
那就優(yōu)化一下下載圖片的速度好了。

stackoverflow上找到一個(gè)帖子,《php - Get compressed contents using cURL》,里面說(shuō)到給curl加一下參數(shù),從而達(dá)到壓縮傳輸?shù)淖饔?,試了一下,果然起作用,又后?lái)的19s多,變成了1.3s左右。

簡(jiǎn)單寫一下代碼(偽代碼):

基于laravel,使用了laravel-wechat, 圖片處理使用intervention/image

獲取遠(yuǎn)程圖片內(nèi)容:

//curl 沒(méi)有做錯(cuò)誤處理
 static public  function getImage(string $url )
    {
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($ch, CURLOPT_ENCODING, "");  //加速 這個(gè)地方留空就可以了
        curl_setopt($ch, CURLOPT_HEADER, 0);
        $output = curl_exec($ch);
        curl_close($ch);
        return $output;
    }
合成圖片
 static public function poster(User $user, Activity $activity )
    {


        $img = Image::make(public_path() . $activity->poster_base_img_url);
        //$img = Image::make(public_path() ."/wechat.jpg");

        $img->text(
            $user->nickname, 180, 1060, function( $font ) {
            $font->file(public_path() . "/simhei.ttf"); //字體設(shè)置
            $font->size(28);
            $font->color("#fff");
            $font->align("center");
        }
        );

        $avatar  = Image::make(static::getImage($user->avatar))->resize(182, 182);

        $img->insert($avatar, "bottom-left", 95, 200);

        $fileName = str_random(16) . ".jpg";
        
        //可以保存到本地,或者上傳到七牛
   
        $img->save($filePath, 70);
         

    }

當(dāng)然了,我搜了一下“為什么下載微信頭像會(huì)這么慢”,有很多大神分析和dns解析有關(guān)系,可以先解析成ip,然后在設(shè)置curl參數(shù),當(dāng)然也可以。解決問(wèn)題方式其實(shí)還是挺多的。

使用intervention/image的坑
這個(gè)坑可能有的人不會(huì)遇到,因?yàn)楹瓦@個(gè)package無(wú)關(guān),而是和自己的php環(huán)境有關(guān)

如果你自己升級(jí)過(guò)php版本,然后沒(méi)有使用imagick,默認(rèn)使用gd庫(kù),那么很有可能中遇到Call to undefined function imagecreatefromjpeg()不支持FreeType 2等一些問(wèn)題。后來(lái)才知道編譯安裝過(guò)程中少了:

 --with-freetype-dir=DIR  --with-jpeg-dir=DIR

所以重新編譯php就可以了。當(dāng)然如果你不使用gd庫(kù)的話,那就不會(huì)出問(wèn)題了,intervention/image默認(rèn)配置使用的就是gd庫(kù),可以自己修改。

參考文章

http://php.net/manual/zh/imag...

https://stackoverflow.com/que...

https://stackoverflow.com/que...

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

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/28771.html

相關(guān)文章

  • 如何判斷用戶是否已關(guān)注公眾號(hào)

    摘要:一微信公眾平臺(tái)配置獲取,添加白名單登錄微信公眾平臺(tái),進(jìn)入基本配置。二后端實(shí)現(xiàn)微信開(kāi)放接口全局返回碼說(shuō)明參考獲取全局此有效期為小時(shí),可以暫存起來(lái),過(guò)期后需要重新獲取。用戶關(guān)注時(shí)間,為時(shí)間戳。 一、微信公眾平臺(tái)配置 1. 獲取appid, appsecret,添加白名單 登錄微信公眾平臺(tái),進(jìn)入基本配置。開(kāi)發(fā)中需要用到兩個(gè)參數(shù),appId和appSecret(appSecret只展示一次,需...

    ConardLi 評(píng)論0 收藏0
  • 如何判斷用戶是否已關(guān)注公眾號(hào)

    摘要:一微信公眾平臺(tái)配置獲取,添加白名單登錄微信公眾平臺(tái),進(jìn)入基本配置。二后端實(shí)現(xiàn)微信開(kāi)放接口全局返回碼說(shuō)明參考獲取全局此有效期為小時(shí),可以暫存起來(lái),過(guò)期后需要重新獲取。用戶關(guān)注時(shí)間,為時(shí)間戳。 一、微信公眾平臺(tái)配置 1. 獲取appid, appsecret,添加白名單 登錄微信公眾平臺(tái),進(jìn)入基本配置。開(kāi)發(fā)中需要用到兩個(gè)參數(shù),appId和appSecret(appSecret只展示一次,需...

    everfly 評(píng)論0 收藏0
  • 微信授權(quán)后獲取用戶頭像保存到服務(wù)器

    摘要:最近做一個(gè)有關(guān)微信授權(quán)登錄的項(xiàng)目,關(guān)于授權(quán)就不多說(shuō)了,我獲取到用戶基本信息格式如下花椒杭州浙江中國(guó)直接把入庫(kù)保存,來(lái)了。 最近做一個(gè)有關(guān)微信授權(quán)登錄的項(xiàng)目,關(guān)于授權(quán)就不多說(shuō)了,我獲取到用戶基本信息,格式如下: $user_info = {openid:xx,nickname:nice花椒.,sex:2,language:zh_CN,city:杭州,province:浙江,country...

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

    摘要:注意如果用戶一開(kāi)始沒(méi)有微信授權(quán),生成海報(bào)時(shí)又必須要用戶頭像不能使用默認(rèn)的話,那就只能老老實(shí)實(shí)走之前的流程了。組件名稱終端類型微信版本觸發(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
  • WordPress主題 Modown 6.2+Erphpdown 11.7虛擬素材資源付費(fèi)下載

    wordpress主題 modown 6.2+Erphpdown 11.7虛擬素材資源付費(fèi)下載源碼名稱:WordPress主題 modown 6.2+Erphpdown 11.7虛擬素材資源付費(fèi)下載兼容版本:全部版本適配編碼:GBK BIG5 UTF8SC UTF8TC演示地址:http://demo.mobantu.com/modown/(官方演示站,以截圖為準(zhǔn))安裝環(huán)境:安裝要求:PHP 5....

    番茄西紅柿 評(píng)論0 收藏2637

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

0條評(píng)論

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