直接输出代码_php代码:实时输出缩小的图像
寫(xiě)在最前面,為什么要用php代碼來(lái)輸出圖像?直接引用圖片不好嗎?
用php代碼來(lái)輸出圖像,可以實(shí)現(xiàn)以下功能:
1.針對(duì)不同情況動(dòng)態(tài)顯示圖片。
針對(duì)不同用戶、ip、瀏覽器語(yǔ)言、搜索引擎、訪問(wèn)設(shè)備來(lái)顯示不同圖像。
例如,百度蜘蛛來(lái)抓取時(shí),顯示防盜鏈圖片,而google爬蟲(chóng)來(lái)抓取時(shí),顯示縮小的圖片預(yù)覽。
例如,通過(guò)手機(jī)瀏覽器訪問(wèn)時(shí),php代碼自動(dòng)把圖片縮小(無(wú)需額外另存小圖)。
例如,訪問(wèn)相冊(cè)時(shí),在索引頁(yè)面自動(dòng)顯示小圖,點(diǎn)擊放大查看時(shí)再顯示大圖(同樣無(wú)需額外另存小圖)。
2.用在上傳圖片時(shí),自動(dòng)另存一份小尺寸縮略圖。
相比第1點(diǎn),在上傳時(shí)就已經(jīng)另存小圖,后期瀏覽時(shí)直接讀取小圖文件,占用系統(tǒng)資源少。
關(guān)鍵代碼:
//$imgfile:圖片路徑+圖片名字。 //$minx,$miny:縮小目標(biāo)尺寸,縮小后的最大寬度和高度 //$outputfile:另存的路徑+圖片名字,留空則直接輸出圖像 function ImageOutput($imgfile,$minx,$miny,$outputfile=null){ //獲取大圖信息$imgarr=getimagesize($imgfile);$maxx=$imgarr[0];//寬$maxy=$imgarr[1];//長(zhǎng)$maxt=$imgarr[2];//格式$maxm=$imgarr['mime'];//mime類型$filetype = image_type_to_extension($imgarr[2], false); //獲取文件后綴 jpeg png gif//大圖資源$imgCF = "imagecreatefrom{$filetype}";$maxim = $imgCF($imgfile);//縮放判斷if(($minx/$maxx)>($miny/$maxy)){$scale=$miny/$maxy;}else{$scale=$minx/$maxx; }//對(duì)所求值進(jìn)行取整$minx=floor($maxx*$scale);$miny=floor($maxy*$scale);//添加小圖$minim=imagecreatetruecolor($minx,$miny);//縮放函數(shù)imagecopyresampled($minim,$maxim,0,0,0,0,$minx,$miny,$maxx,$maxy);//判斷圖片類型switch($maxt){case 1:$imgout="imagegif";$quality = 100;break;case 2:$imgout="imagejpeg";$quality = 100;break;case 3:$imgout="imagepng";$quality = 9;break;}if($outputfile){$imgout($minim,$outputfile,$quality); //輸出實(shí)體文件}else{//小圖輸出header("content-type:{$maxm}");$imgout($minim,null,$quality);}//釋放資源imagedestroy($maxim);imagedestroy($minim); }如何使用?
在 showing.php 中的代碼:
if($_GET['img']){ImageOutput($_GET['img'],350,350,null); }在需要引用圖片的頁(yè)面,使用類似以下代碼:
echo '<img src="./showimg.php?img=ABC.jpg"/>';如果不想暴露真實(shí)圖片路徑,那還需要用一定的“煙霧彈”要掩蓋,這就不展開(kāi)了。
參考資料:
PHP實(shí)例----圖片等比例縮放功能_PHP_wzqnls-CSDN博客?blog.csdn.netPHP瀏覽器中直接輸出圖片_PHP_江南極客-CSDN博客?blog.csdn.net 創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來(lái)咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)總結(jié)
以上是生活随笔為你收集整理的直接输出代码_php代码:实时输出缩小的图像的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 交流电的有效值rms值_交流电路中的电源
- 下一篇: iis php5.4配置_IIS 8+P