利用php製作圖片並輸出到頁面

9 / 3, 2012 PHP , 站長自製

有沒有常常看到有些網站的圖片是利用php檔輸出的,網址可能是img.php?img=123.jpg,其實這是利用php的image功能製作的,而好奇心強又不求甚解的小弟決定來好好研究一翻,經過長久的努力,終於寫出了第一個輸出圖片用的程式


以下為檔案(img.php)原始碼:

<?php
Header("Content-type: image/png");
$img=imagecreatefrompng($_GET["img"]);
ImagePng($img);
?>

註:以上程式碼可能會因為編碼問題,導致字元顯示異常,建議使用文章下方的下載點
稍微解釋一下(這次小弟很確定這個解釋沒錯),以下為有註解版:

<?php
Header("Content-type: image/png"); //宣告檔案格式,在此為圖檔png
$img=imagecreatefrompng($_GET["img"]);//將變數img設為圖片,來源是?img後面的網址(在$_GET["img"]宣告),然後利用取得到的圖片網址製作一個圖檔(在imagecreatefrompng宣告)
ImagePng($img); //輸出圖檔
?>

以上就是小弟加上的註解
註:建議使用無註解版
還有如果檔案不是png,就把上面所有png的字串全改成圖檔副檔名,例如ImagePng改成ImageGif,如果副檔名是jpg,請打jpeg(以下用png示範)
接著試試看,把img.php上傳到伺服器並開啟,會出現找不到圖片的標示,然後在網址後面加上?img=https://dl.dropbox.com/u/33517663/img/test.png,是不是看到圖片了(美麗的夕陽)
php圖片製作
接著按右鍵,就會發現觀看原始碼的按鈕被反白了,證明這真的是圖片
php圖片證明
以下是利用php製作圖片,並利用html嵌入網頁
php圖片製作嵌入測試
以下是直接嵌入網頁
直接嵌入測試
當然,只是將圖片輸出沒有意義,不過別認為學了沒用,其實超厲害圖片製作程式TimThumb就是在這個基礎上打造的,不信看看timthumb的原始碼
http://timthumb.googlecode.com/svn/trunk/timthumb.php
timthumb部分原始碼
參考資料:http://php.net/manual/en/function.imagepng.php
檔案下載:http://s3131212.com/download.php?s=img.zip