PHP實(shí)現(xiàn)提取一個(gè)圖像文件并在瀏覽器上顯示的代碼
更新時(shí)間:2012年10月06日 20:59:51 作者:
去年做過一個(gè)項(xiàng)目,要把用戶上傳的圖像文件列出文字清單,當(dāng)用戶點(diǎn)擊一個(gè)文件名后,就可以顯示這個(gè)圖像.今天有機(jī)會(huì)重新考慮這個(gè)功能,在php手冊(cè)中發(fā)現(xiàn)幾行代碼,簡(jiǎn)潔明快,完全能實(shí)現(xiàn)我要的功能,還不需要GD庫
去年做過一個(gè)項(xiàng)目,要把用戶上傳的圖像文件列出文字清單,當(dāng)用戶點(diǎn)擊一個(gè)文件名后,就可以顯示這個(gè)圖像.
因?yàn)橐紤]兼容各種不同的圖像格式, 我使用了GD庫, 判斷出具體是那種圖像文件(MINE),再調(diào)用相應(yīng)的image生成函數(shù)imagecreatefromXXX(),生成一個(gè)img,再將這個(gè)img以jpeg格式輸出至瀏覽器,雖然做出來了,但總覺得不滿意.
今天有機(jī)會(huì)重新考慮這個(gè)功能,在php手冊(cè)中發(fā)現(xiàn)幾行代碼,簡(jiǎn)潔明快,完全能實(shí)現(xiàn)我要的功能,還不需要GD庫
<?php
$size = getimagesize($filename); //獲取mime信息
$fp=fopen($filename, "rb"); //二進(jìn)制方式打開文件
if ($size && $fp) {
header("Content-type: {$size['mime']}");
fpassthru($fp); // 輸出至瀏覽器
exit;
} else {
// error
}
?>
代碼量是我原來的1/10都不到,速度快了N倍.
因?yàn)橐紤]兼容各種不同的圖像格式, 我使用了GD庫, 判斷出具體是那種圖像文件(MINE),再調(diào)用相應(yīng)的image生成函數(shù)imagecreatefromXXX(),生成一個(gè)img,再將這個(gè)img以jpeg格式輸出至瀏覽器,雖然做出來了,但總覺得不滿意.
今天有機(jī)會(huì)重新考慮這個(gè)功能,在php手冊(cè)中發(fā)現(xiàn)幾行代碼,簡(jiǎn)潔明快,完全能實(shí)現(xiàn)我要的功能,還不需要GD庫
復(fù)制代碼 代碼如下:
<?php
$size = getimagesize($filename); //獲取mime信息
$fp=fopen($filename, "rb"); //二進(jìn)制方式打開文件
if ($size && $fp) {
header("Content-type: {$size['mime']}");
fpassthru($fp); // 輸出至瀏覽器
exit;
} else {
// error
}
?>
代碼量是我原來的1/10都不到,速度快了N倍.
您可能感興趣的文章:
- 使用PHP生成二維碼的兩種方法(帶logo圖像)
- php圖像處理函數(shù)大全(推薦收藏)
- PHP輸出圖像imagegif、imagejpeg與imagepng函數(shù)用法分析
- PHP圖片裁剪函數(shù)(保持圖像不變形)
- PHP圖像處理之imagecreate、imagedestroy函數(shù)介紹
- 基于OpenCV的PHP圖像人臉識(shí)別技術(shù)
- PHP圖像識(shí)別技術(shù)原理與實(shí)現(xiàn)
- PHP中繪制圖像的一些函數(shù)總結(jié)
- PHP GD庫生成圖像的幾個(gè)函數(shù)總結(jié)
- 解析php常用image圖像函數(shù)集
- PHP基于GD庫的圖像處理方法小結(jié)
- php實(shí)現(xiàn)的證件照換底色功能示例【人像摳圖/換背景圖】
相關(guān)文章
Yii 使用intervention/image拓展實(shí)現(xiàn)圖像處理功能
這篇文章主要介紹了Yii 使用intervention/image拓展實(shí)現(xiàn)圖像處理功能,需要的朋友可以參考下2019-06-06
php計(jì)算給定時(shí)間之前的函數(shù)用法實(shí)例
這篇文章主要介紹了php計(jì)算給定時(shí)間之前的函數(shù)用法,實(shí)例分析了php計(jì)算時(shí)間的技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2015-04-04
通過JavaScript或PHP檢測(cè)Android設(shè)備的代碼
在此列出一些能夠在iOS的最大競(jìng)爭(zhēng)者——安卓(Android)系統(tǒng)的檢測(cè)方法。即通過JavaScript或PHP檢測(cè)Android設(shè)備,給大家提供參考。2011-03-03
PHP7擴(kuò)展開發(fā)教程之Hello World實(shí)現(xiàn)方法示例
這篇文章主要介紹了PHP7擴(kuò)展開發(fā)教程之Hello World實(shí)現(xiàn)方法,結(jié)合實(shí)例形式較為詳細(xì)的分析了針對(duì)php7擴(kuò)展的源碼下載、設(shè)置、代碼編輯及測(cè)試運(yùn)行相關(guān)操作技巧,需要的朋友可以參考下2017-08-08
深入講解PHP的對(duì)象注入(Object Injection)
這篇文章主要介紹了PHP中對(duì)象注入的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),相信對(duì)大家具有一定的參考價(jià)值,需要的朋友們下面來一起看看吧。2017-03-03
PHP回調(diào)函數(shù)與匿名函數(shù)實(shí)例詳解
這篇文章主要介紹了PHP回調(diào)函數(shù)與匿名函數(shù),結(jié)合實(shí)例形式分析了php回調(diào)函數(shù)與匿名函數(shù)的具體功能、用法及相關(guān)注意事項(xiàng),需要的朋友可以參考下2017-08-08
php獲取網(wǎng)頁請(qǐng)求狀態(tài)程序示例
對(duì)于網(wǎng)頁返回狀態(tài)代碼多數(shù)情況下我們的查看方法就是使用站長工具或ff瀏覽器等來查看,極少有人想到自己寫一個(gè)查看狀態(tài)代碼的功能,本文就此簡(jiǎn)述php獲取網(wǎng)頁請(qǐng)求狀態(tài)程序示例,需要的朋友可以參考下2014-06-06
php去掉URL網(wǎng)址中帶有PHPSESSID的配置方法
這篇文章主要介紹了php開發(fā)的網(wǎng)站網(wǎng)址中帶有PHPSESSID的解決辦法,也就是把PHP的跨頁傳遞SESSION選擇在php.ini中關(guān)閉,這樣這個(gè)參數(shù)就不會(huì)出現(xiàn)在URL中了,需要的朋友可以參考下2014-07-07

