防微信個人二維碼中間放頭像

在做個人二維碼的是時候需求需要中間有一個頭像。

<?php
/** 畫圓角
 * @param $radius 圓角位置
 * @param $color_r 色值0-255
 * @param $color_g 色值0-255
 * @param $color_b 色值0-255
 * @return resource 返回圓角
 */
function get_lt_rounder_corner($radius, $color_r, $color_g, $color_b)
{
    // 創(chuàng)建一個正方形的圖像
    $img = imagecreatetruecolor($radius, $radius);
    // 圖像的背景
    $bgcolor = imagecolorallocate($img, $color_r, $color_g, $color_b);
    $fgcolor = imagecolorallocate($img, 0, 0, 0);
    imagefill($img, 0, 0, $bgcolor);
    // $radius,$radius:以圖像的右下角開始畫弧
    // $radius*2, $radius*2:已寬度驳庭、高度畫弧
    // 180, 270:指定了角度的起始和結(jié)束點
    // fgcolor:指定顏色
    imagefilledarc($img, $radius, $radius, $radius * 2, $radius * 2, 180, 270, $fgcolor, IMG_ARC_PIE);
    // 將弧角圖片的顏色設(shè)置為透明
    imagecolortransparent($img, $fgcolor);
    return $img;
}


/**
 * 畫一個帶圓角的頭像圖
 * @param $im  底圖
 * @param $dst_x 畫出的圖的(0,0)位于底圖的x軸位置
 * @param $dst_y 畫出的圖的(0氯窍,0)位于底圖的y軸位置
 * @param $image_w 畫的圖的寬
 * @param $image_h 畫的圖的高
 * @param $radius 圓角的值
 * @return $im 返回帶圓角的圖像
 */
function imagebackgroundmycard($im, $dst_x, $dst_y, $image_w, $image_h, $radius)
{
     
    $lt_corner = get_lt_rounder_corner($radius, 255, 255, 255);//圓角的背景色

    // lt(左上角)
    imagecopymerge($im, $lt_corner, 0, 0, 0, 0, $radius, $radius, 100);
    // lb(左下角)
    $lb_corner = imagerotate($lt_corner, 90, 0);
    imagecopymerge($im, $lb_corner, 0, $image_h - $radius, 0, 0, $radius, $radius, 100);
    // rb(右上角)
    $rb_corner = imagerotate($lt_corner, 180, 0);
    imagecopymerge($im, $rb_corner, $image_w - $radius, $image_h - $radius, 0, 0, $radius, $radius, 100);
    // rt(右下角)
    $rt_corner = imagerotate($lt_corner, 270, 0);
    imagecopymerge($im, $rt_corner, $image_w - $radius, 0, 0, 0, $radius, $radius, 100);

    return $im;
}


//獲取二維碼
$qrcode = file_get_contents('./2.png');
$qrcode = imagecreatefromstring($qrcode);
$qrcode_width = imagesx($qrcode);//得到寬度
$qrcode_height = imagesy($qrcode);//得到高度

//圓角背景圖片
$corner = file_get_contents('./bj.gif');
$corner = imagecreatefromstring($corner);
$corner_width = imagesx($corner);//得到寬度
$corner_height = imagesy($corner);//得到高度

//計算圓角圖片的寬高及相對于二維碼的擺放位置,將圓角圖片拷貝到二維碼中央
//想要logo中的白色背景大一點可以改數(shù)字饲常,數(shù)字越小背景越大
$corner_qr_height = $corner_qr_width = $qrcode_width/4;
$from_width = ($qrcode_width-$corner_qr_width)/2;
imagecopyresampled($qrcode, $corner, $from_width, $from_width, 0, 0, $corner_qr_width, $corner_qr_height, $corner_width, $corner_height);


//獲取頭像
$logo = imagecreatefromstring(file_get_contents('./1.png'));
$logo_width = imagesx($logo);//得到寬度
$logo_height = imagesy($logo);//得到高度


//矩形上面加圓角
$radius = 30;//圓角的像素,值越大越圓
$dst_x = 10;//距離白色大背景左邊的距離
$y = 10;//距離白色大背景頂端的距離

//這里調(diào)用函數(shù)狼讨,繪制淡色的圓角背景贝淤,得到帶圓角的頭像
imagebackgroundmycard($logo, $dst_x, $y, $logo_width, $logo_height, $radius);


//計算logo圖片的寬高及相對于二維碼的擺放位置,將logo拷貝到二維碼中央
//想要logo中的圖像大一點可以改數(shù)字,數(shù)字越小頭像越大
$logo_qr_height = $logo_qr_width = $qrcode_width/4 - 7;
$from_width = ($qrcode_width-$logo_qr_width)/2;
imagecopyresampled($qrcode, $logo, $from_width, $from_width, 0, 0, $logo_qr_width, $logo_qr_height, $logo_width, $logo_height);
//保存圖片
imagepng($qrcode, "./qrcode.png");

//直接輸出圖片 在瀏覽器顯示
header('Content-type: image/png');
imagepng($qrcode);
imagedestroy($qrcode);
imagedestroy($corner);
imagedestroy($logo);

圓角圖片,可以右鍵保存下來


bj.gif
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末政供,一起剝皮案震驚了整個濱河市播聪,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌布隔,老刑警劉巖离陶,帶你破解...
    沈念sama閱讀 219,490評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異衅檀,居然都是意外死亡招刨,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,581評論 3 395
  • 文/潘曉璐 我一進(jìn)店門哀军,熙熙樓的掌柜王于貴愁眉苦臉地迎上來沉眶,“玉大人打却,你說我怎么就攤上這事』丫螅” “怎么了柳击?”我有些...
    開封第一講書人閱讀 165,830評論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長片习。 經(jīng)常有香客問我捌肴,道長,這世上最難降的妖魔是什么毯侦? 我笑而不...
    開封第一講書人閱讀 58,957評論 1 295
  • 正文 為了忘掉前任哭靖,我火速辦了婚禮,結(jié)果婚禮上侈离,老公的妹妹穿的比我還像新娘试幽。我一直安慰自己,他們只是感情好卦碾,可當(dāng)我...
    茶點故事閱讀 67,974評論 6 393
  • 文/花漫 我一把揭開白布铺坞。 她就那樣靜靜地躺著,像睡著了一般洲胖。 火紅的嫁衣襯著肌膚如雪济榨。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,754評論 1 307
  • 那天绿映,我揣著相機(jī)與錄音擒滑,去河邊找鬼。 笑死叉弦,一個胖子當(dāng)著我的面吹牛丐一,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播淹冰,決...
    沈念sama閱讀 40,464評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼库车,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了樱拴?” 一聲冷哼從身側(cè)響起柠衍,我...
    開封第一講書人閱讀 39,357評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎晶乔,沒想到半個月后珍坊,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,847評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡瘪弓,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,995評論 3 338
  • 正文 我和宋清朗相戀三年垫蛆,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,137評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡袱饭,死狀恐怖川无,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情虑乖,我是刑警寧澤懦趋,帶...
    沈念sama閱讀 35,819評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站疹味,受9級特大地震影響仅叫,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜糙捺,卻給世界環(huán)境...
    茶點故事閱讀 41,482評論 3 331
  • 文/蒙蒙 一诫咱、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧洪灯,春花似錦坎缭、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,023評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至铅檩,卻和暖如春憎夷,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背昧旨。 一陣腳步聲響...
    開封第一講書人閱讀 33,149評論 1 272
  • 我被黑心中介騙來泰國打工拾给, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人兔沃。 一個月前我還...
    沈念sama閱讀 48,409評論 3 373
  • 正文 我出身青樓鸣戴,卻偏偏與公主長得像,于是被迫代替她去往敵國和親粘拾。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,086評論 2 355

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