首頁 > 後端開發 > PHP問題 > PHP中怎麼輸出圖片? (圖例詳解)

PHP中怎麼輸出圖片? (圖例詳解)

WBOY
發布: 2023-03-13 12:12:02
原創
8836 人瀏覽過

在之前的文章中為大家帶來了《PHP如何上傳檔案?看完就明白了! 》,其中詳細的給大家介紹了在PHP中應該怎樣上傳文件,這篇文章來一起看一看PHP中圖像處理的相關知識,希望對大家有幫助!

PHP中怎麼輸出圖片? (圖例詳解)

影像處理是PHP工作中常遇到的事情,我們遇到需要處理影像的場景有很多,例如影像驗證碼、圖片浮水印等等場景。其實學習影像處理的重點其實是學習PHP中GD系統的函數,PHP的影像處理需要GD庫的支持,那接下來我們先來看看關於GD庫的相關知識吧。

GD庫

#GD庫可以理解為用於建立圖形影像的函式庫,GD庫實際是由C語言編寫的,可以用於PHP中,除了PHP外還可以在Perl等多種語言中使用,GD 庫中提供了很多用來處理圖片的接口,

PHP 中使用GD庫可以在頁面中繪製各種圖形圖像,統計圖,還有圖像驗證碼也可以使用GD庫來實現。

範例如下:

<?php
phpinfo();
?>
登入後複製

當輸入之後,在輸出結果中,如果出現如下所示的兩個選項,則表示目前的機器支援透過GD來處理影像:

PHP中怎麼輸出圖片? (圖例詳解)

或可以使用:

<?php
    print_r(gd_info());
?>
登入後複製

輸入之後執行,若輸出結果如下圖所示,也表示目前機器支援透過GD來處理圖像。

PHP中怎麼輸出圖片? (圖例詳解)

那如果沒有安裝好的話,也可以透過在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(&#39;画布创建失败!&#39;);
?>
登入後複製

因為只是創建了一個畫布上面並沒有東西,瀏覽器也不會輸出畫布,但是可以透過imagesx() 和imagesy( ) 來取得影像的寬度和高度:

<?php
    $img = @imagecreatetruecolor(120, 20) or die(&#39;画布创建失败!&#39;);
    echo &#39;画布的宽度为:&#39;.imagesx($img).&#39;像素&#39;;
    echo &#39;<br>画布的高度为:&#39;.imagesy($img).&#39;像素&#39;;
?>
登入後複製

輸出結果:


PHP中怎麼輸出圖片? (圖例詳解)

#由此我們便完成了建立一個畫布。

除了使用上面兩個函數建立畫布之外,還可以透過以下方式,透過檔案或url建立圖像:

  • imagecreatefromgif()  :  通過GIF 文件或者URL 新建一個圖像   

  • imagecreatefromjpeg()  :   通過JPEG 文件或者UR 新建一個圖像   

  • imagecreatefrompng()   :   透過PNG 檔案或UR L新建一個映像   

  • imagecreatefromwbmp() 

  • ##imagecreatefromwbmp() 
 :透過新建新檔案或UR#一個圖像   

輸出圖片

  • #上述範例中,我們已經成功的創建了畫布,在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(&#39;Content-type:image/jpeg&#39;);
    $image= imagecreatefrompng(&#39;php.png&#39;);
    imagepng($image);
?>
登入後複製

输出结果:

PHP中怎麼輸出圖片? (圖例詳解)

通过imagecreatefrompng()函数和imagepng()成功的输出了一个格式为png的图片。

释放图像资源

通过上述示例已经成功的输出了图片,在图片的资源使用完成后,通常需要释放图像处理时所占用的内存,那应该怎样操作呢?

在PHP中我们通过imagedestroy() 函数来释放图像资源,语法格式如下:

imagedestroy(resource $image)
登入後複製

其中$image表示需要释放资源的图像

示例如下:

<?php
    header(&#39;Content-type:image/jpeg&#39;);
    $image= imagecreatefrompng(&#39;php.png&#39;);
    imagepng($image);
    imagedestroy($image);
?>
登入後複製

因为释放图像资源的操作是没有输出内容的,所以就不列出输出结果了。

推荐学习:《PHP视频教程

以上是PHP中怎麼輸出圖片? (圖例詳解)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板