PHP圖像處理-1-GD庫(kù)與圖像信息

第一部分 GD庫(kù)介紹

PHP進(jìn)行圖像處理需要借助GD庫(kù)或者其他的類庫(kù)献雅,如ImageMagick(處理GIF管挟、PNG隔崎、JPEG今艺、WEBP)

知識(shí)點(diǎn):

  • 常用的圖像處理函數(shù)
  • 繪制圖像
  • 項(xiàng)目中的運(yùn)用(常常用于創(chuàng)建縮略圖、創(chuàng)建水印爵卒、旋轉(zhuǎn)圖像虚缎、驗(yàn)證碼)
  • 配合安裝GD庫(kù)
  • 可以使用phpinfo看看有沒(méi)有安裝,沒(méi)有的話extension=php.gd.dll;配置文件開(kāi)啟GD庫(kù)钓株。

常見(jiàn)的圖片格式


Screen-Shot-2018-02-21-at-7.45.06-PM-1024x301.png

jpeg格式在多次壓縮之后會(huì)降低質(zhì)量实牡,GIF不錯(cuò)但是色彩不行陌僵,PNG是不錯(cuò)的,WEBP運(yùn)用比較廣有前景创坞,它質(zhì)量好而且小碗短。

GD庫(kù)支持圖像格式及對(duì)應(yīng)版本:


2.png

WEBP格式不僅僅要GD版本和PHP版本達(dá)到要求,還要看看服務(wù)器是否支持WEBP圖像格式题涨。

可以使用gd_info()函數(shù)來(lái)檢測(cè)服務(wù)器支持的圖像格式偎谁,返回一個(gè)數(shù)組得到支持的圖片格式。

第二部分 圖像信息處理

1.獲取圖片的詳情信息getimagesize($image)

返回的是一個(gè)數(shù)組携栋。不僅僅可以獲得圖片的尺寸還可以獲得其他信息搭盾,單位是像素咳秉。

<?php
$image = '../image/a.jpg';
$info = getimagesize($image);
var_dump($info);
3.png

索引值對(duì)應(yīng)的返回:

0 -> 像素

1 -> 高度

2 -> 圖片格式1-GIF 2-JPEG 3-PNG

3 -> 是一個(gè)字符串詳細(xì)表明了寬度和高度

下面的只有對(duì)jpg的格式有效婉支。bits圖像的位數(shù) channels是3表明是RGB的圖像 mime是格式告訴瀏覽器這個(gè)是什么內(nèi)容常用的mimetype有jgp/txt/html/application/json/image告訴格式要渲染什么格式,這個(gè)屬性很有用澜建,要輸出圖像需要聲明這個(gè)mimetype否則會(huì)輸出二進(jìn)制的亂碼而不是圖片

也可以使用獲取文件的方式來(lái)得到剛才的信息:

<?php
$image = '../image/a.jpg';
$string = file_get_contents($image);
$info = getimagesizefromstring($string);
var_dump($info);

獲取圖像的文件后綴向挖,true的時(shí)候會(huì)帶上后綴的.,如果是false就直接輸出后綴

<?php
$image = '../image/a.jpg';
$string = file_get_contents($image);
$info = getimagesizefromstring($string);
$imageType = image_type_to_extension($info[2],false);
var_dump($imageType);
4.png

還可以獲取mime type

<?php
$image = '../image/a.jpg';
$string = file_get_contents($image);
$info = getimagesizefromstring($string);
$mime = image_type_to_mime_type($info[2]);
var_dump($mime);
5.png

直接獲取圖像的寬度和長(zhǎng)度:

注意imagesx()和imagesy()傳入的參數(shù)是資源類型而不是直接傳圖像炕舵。

<?php
$image = '../image/a.jpg';
$im = imagecreatefromjpeg($image);
echo sprintf('a.jpg 寬:%s何之,高:%s',imagesx($im),imagesy($im));

圖像資源很多,每次如何去判斷呢咽筋?這就要用到mime_type來(lái)調(diào)用不同的函數(shù)來(lái)創(chuàng)建圖像資源(這是代碼段):

/根據(jù)不同的圖像type來(lái)創(chuàng)建圖像
switch ($info[2]) {
    case IMAGETYPE_GIF:
        $im = imagecreatefromgif($image);
        break;
    case IMAGETYPE_JPEG:
        $im = imagecreatefromjpeg($image);
        break;
    case IMAGETYPE_PNG:
        $im = imagecreatefrompng($image);
        break;
    default:
        echo '圖像格式不支持';
        break;
}
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末溶推,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子奸攻,更是在濱河造成了極大的恐慌蒜危,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,188評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件睹耐,死亡現(xiàn)場(chǎng)離奇詭異辐赞,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)硝训,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,464評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門响委,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人窖梁,你說(shuō)我怎么就攤上這事赘风。” “怎么了纵刘?”我有些...
    開(kāi)封第一講書人閱讀 165,562評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵贝次,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我彰导,道長(zhǎng)蛔翅,這世上最難降的妖魔是什么敲茄? 我笑而不...
    開(kāi)封第一講書人閱讀 58,893評(píng)論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮山析,結(jié)果婚禮上堰燎,老公的妹妹穿的比我還像新娘。我一直安慰自己笋轨,他們只是感情好秆剪,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,917評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著爵政,像睡著了一般仅讽。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上钾挟,一...
    開(kāi)封第一講書人閱讀 51,708評(píng)論 1 305
  • 那天洁灵,我揣著相機(jī)與錄音,去河邊找鬼掺出。 笑死徽千,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的汤锨。 我是一名探鬼主播双抽,決...
    沈念sama閱讀 40,430評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼闲礼!你這毒婦竟也來(lái)了牍汹?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書人閱讀 39,342評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤柬泽,失蹤者是張志新(化名)和其女友劉穎慎菲,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體聂抢,經(jīng)...
    沈念sama閱讀 45,801評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡钧嘶,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,976評(píng)論 3 337
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了琳疏。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片有决。...
    茶點(diǎn)故事閱讀 40,115評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖空盼,靈堂內(nèi)的尸體忽然破棺而出书幕,到底是詐尸還是另有隱情,我是刑警寧澤揽趾,帶...
    沈念sama閱讀 35,804評(píng)論 5 346
  • 正文 年R本政府宣布台汇,位于F島的核電站,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏苟呐。R本人自食惡果不足惜痒芝,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,458評(píng)論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望牵素。 院中可真熱鬧严衬,春花似錦、人聲如沸笆呆。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 32,008評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)赠幕。三九已至俄精,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間榕堰,已是汗流浹背竖慧。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 33,135評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留局冰,地道東北人测蘑。 一個(gè)月前我還...
    沈念sama閱讀 48,365評(píng)論 3 373
  • 正文 我出身青樓灌危,卻偏偏與公主長(zhǎng)得像康二,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子勇蝙,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,055評(píng)論 2 355

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

  • 注明:本人原創(chuàng)翻譯味混,原版為Essential Image Optimization電子書产雹,這里將其拆分為幾篇文章發(fā)...
    ProteanBear閱讀 5,155評(píng)論 0 5
  • PHP中GD庫(kù)的使用 GD簡(jiǎn)介 PHP 不僅限于只產(chǎn)生 HTML 的輸出,還可以創(chuàng)建及操作多種不同格式的圖像文件翁锡。...
    dptms閱讀 1,020評(píng)論 0 2
  • 圖片通常是移動(dòng)端流量耗費(fèi)最多的部分蔓挖,并且占據(jù)著重要的視覺(jué)空間。合理的圖片格式選用和優(yōu)化可以為你節(jié)省帶寬馆衔、提升視覺(jué)效...
    傻傻小蘿卜閱讀 748評(píng)論 1 9
  • 圖像(image) 常用的圖像文件存儲(chǔ)格式: CDR格式 該格式是CoreDraw軟件專用的一種圖形文件存儲(chǔ)格式瘟判;...
    我才不是稻草人閱讀 1,607評(píng)論 0 0
  • 面對(duì)成績(jī),不妨讓孩子保持這樣的態(tài)度——不去在乎一次成敗角溃,只要你斗志長(zhǎng)存拷获,不言放棄,沒(méi)有什么目標(biāo)是無(wú)法實(shí)現(xiàn)的减细! ...
    安_5b48閱讀 93評(píng)論 0 0