在之前的文章中為大家帶來了《PHP如何上傳檔案?看完就明白了! 》,其中詳細的給大家介紹了在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).'像素'; ?>輸出結果:
imagecreatefromgif()
: 通過GIF 文件或者URL 新建一個圖像
imagecreatefromjpeg()
: 通過JPEG 文件或者UR 新建一個圖像
imagecreatefrompng()
: 透過PNG 檔案或UR L新建一個映像
imagecreatefromwbmp()
##imagecreatefromwbmp()
輸出圖片
- #上述範例中,我們已經成功的創建了畫布,在PHP中不同格式的圖像也需要不同的函數來進行輸出,不同的函數如下所示:
- : 輸出一個GIF格式圖像到瀏覽器或檔案
- : 輸出一個JPEG格式影像到瀏覽器或檔案
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视频教程》
以上是PHP中怎麼輸出圖片? (圖例詳解)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本文比較了酸和基本數據庫模型,詳細介紹了它們的特徵和適當的用例。酸優先確定數據完整性和一致性,適合財務和電子商務應用程序,而基礎則側重於可用性和

本文討論了確保PHP文件上傳的確保,以防止諸如代碼注入之類的漏洞。它專注於文件類型驗證,安全存儲和錯誤處理以增強應用程序安全性。

本文討論了在PHP中實施API速率限制的策略,包括諸如令牌桶和漏水桶等算法,以及使用Symfony/Rate-limimiter之類的庫。它還涵蓋監視,動態調整速率限制和手

本文討論了使用password_hash和pyspasswify在PHP中使用密碼的好處。主要論點是,這些功能通過自動鹽,強大的哈希算法和SECH來增強密碼保護

本文討論了OWASP在PHP和緩解策略中的十大漏洞。關鍵問題包括注射,驗證損壞和XSS,並提供用於監視和保護PHP應用程序的推薦工具。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

mPDF
mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

MantisBT
Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

Safe Exam Browser
Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

Dreamweaver Mac版
視覺化網頁開發工具

ZendStudio 13.5.1 Mac
強大的PHP整合開發環境