您好,登錄后才能下訂單哦!
本篇內容主要講解“PHP中如何輸出圖片”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“PHP中如何輸出圖片”吧!
圖像處理是PHP工作中常遇到的事情,我們遇到需要處理圖像的場景有很多,例如圖像驗證碼、圖片水印等等場景。其實學習圖像處理的重點實際是學習PHP中GD系統的函數,PHP的圖像處理需要GD庫的支持,那接下來我們首先來看一下關于GD庫的相關知識吧。
GD庫
GD庫可以理解為一個用于創建圖形圖像的函數庫,GD庫實際是由C語言編寫的,可以用于PHP中,除了PHP外還可以在Perl等多種語言中使用,GD 庫中提供了很多用來處理圖片的接口,
PHP 中使用 GD 庫可以在頁面中繪制各種圖形圖像,統計圖,還有圖像驗證碼也可以使用GD庫來實現。
示例如下:
<?php phpinfo(); ?>
當輸入之后,在輸出結果中,如果出現如下所示的兩個選項,則表示當前的機器支持通過GD來處理圖像:
或者可以使用:
<?php print_r(gd_info()); ?>
輸入之后運行,若輸出結果如下圖所示,也表示當前機器支持通過GD來處理圖像。
那如果沒有安裝好的話,也可以通過在 Windows 系統下只需將 php.ini 配置文件中“extension=php_gd2.dll”一項前面的注釋刪除的方法完成。
在 PHP 中,通過 GD 庫處理圖像的操作一般分為 4 個基本步驟:
創建畫布
繪制圖像
輸出圖像
釋放資源
通過這四步我們就完成了對圖像的基本操作了,你接下來我們一起來看一下應該怎么操作吧。
創建畫布
我們所有的繪圖和圖像處理都需要在一個背景圖片上面完成,也就是畫布,可以理解為為圖像我們在內存中有一片臨時的區域作為畫布,用來儲存圖像的信息,以后的圖像操作都會在這片區域也就是畫布上進行。
imagecreate()
和 imagecreatetruecolor()
用來創建畫布,它們的語法格式如下:
imagecreate(int $width, int $height) imagecreatetruecolor(int $width, int $height)
其中,$width 表示創建畫布的寬度也可以理解為圖像的寬度,$height 表示創建畫布的高度也就是圖像的高度
這兩個函數都可以用來創建畫布,不過其中不同的是,他們可以容納的色彩范圍不同。
示例如下:
<?php $img = @imagecreatetruecolor(120, 20) or die('畫布創建失敗!'); ?>
由于只是創建了一個畫布上面并沒有東西,瀏覽器也不會輸出畫布,但是可以通過 imagesx() 和 imagesy() 來獲取圖像的寬和高:
<?php $img = @imagecreatetruecolor(120, 20) or die('畫布創建失敗!'); echo '畫布的寬度為:'.imagesx($img).'像素'; echo '<br>畫布的高度為:'.imagesy($img).'像素'; ?>
輸出結果:
由此我們便完成了創建一個畫布。
除了使用上面兩個函數創建畫布之外,還可以通過以下方式,通過文件或者url創建圖像:
imagecreatefromgif()
: 通過 GIF 文件或者 URL 新建一個圖像
imagecreatefromjpeg()
: 通過 JPEG 文件或者 UR 新建一個圖像
imagecreatefrompng()
: 通過 PNG 文件或者 UR L新建一個圖像
imagecreatefromwbmp()
: 通過 WBMP 文件或者URL,新建一個圖像
輸出圖片
上述示例中,我們已經成功的創建了畫布,在PHP中不同格式的圖像也需要不同的函數來進行輸出,不同的函數如下所示:
imagegif()
: 輸出一個GIF格式圖像到瀏覽器或文件
imagejpeg()
: 輸出一個JPEG格式圖像到瀏覽器或文件
imagepng()
:輸出一個PNG格式圖像到瀏覽器或文件
它們的語法格式如下:
imagegif(resource $image[, string $filename]) imagejpeg(resource $image[, string $filename[, int $quality]]) imagepng(resource $image[, string $filename])
其中,$image為創建的一個圖像資源;$filename表示為參數,用來設置文件需要保存的路徑。
示例如下:
首先我在根目錄中已經保存了一個名為php.png的圖像文件
<?php header('Content-type:image/jpeg'); $image= imagecreatefrompng('php.png'); imagepng($image); ?>
輸出結果:
通過imagecreatefrompng()函數和imagepng()成功的輸出了一個格式為png的圖片。
釋放圖像資源
通過上述示例已經成功的輸出了圖片,在圖片的資源使用完成后,通常需要釋放圖像處理時所占用的內存,那應該怎樣操作呢?
在PHP中我們通過imagedestroy() 函數來釋放圖像資源,語法格式如下:
imagedestroy(resource $image)
其中$image表示需要釋放資源的圖像
示例如下:
<?php header('Content-type:image/jpeg'); $image= imagecreatefrompng('php.png'); imagepng($image); imagedestroy($image); ?>
因為釋放圖像資源的操作是沒有輸出內容的,所以就不列出輸出結果了。
到此,相信大家對“PHP中如何輸出圖片”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。