直接输出代码_php代码:实时输出缩小的图像
生活随笔
收集整理的這篇文章主要介紹了
直接输出代码_php代码:实时输出缩小的图像
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
寫在最前面,為什么要用php代碼來輸出圖像?直接引用圖片不好嗎?
用php代碼來輸出圖像,可以實現以下功能:
1.針對不同情況動態顯示圖片。
針對不同用戶、ip、瀏覽器語言、搜索引擎、訪問設備來顯示不同圖像。
例如,百度蜘蛛來抓取時,顯示防盜鏈圖片,而google爬蟲來抓取時,顯示縮小的圖片預覽。
例如,通過手機瀏覽器訪問時,php代碼自動把圖片縮小(無需額外另存小圖)。
例如,訪問相冊時,在索引頁面自動顯示小圖,點擊放大查看時再顯示大圖(同樣無需額外另存小圖)。
2.用在上傳圖片時,自動另存一份小尺寸縮略圖。
相比第1點,在上傳時就已經另存小圖,后期瀏覽時直接讀取小圖文件,占用系統資源少。
關鍵代碼:
//$imgfile:圖片路徑+圖片名字。 //$minx,$miny:縮小目標尺寸,縮小后的最大寬度和高度 //$outputfile:另存的路徑+圖片名字,留空則直接輸出圖像 function ImageOutput($imgfile,$minx,$miny,$outputfile=null){ //獲取大圖信息$imgarr=getimagesize($imgfile);$maxx=$imgarr[0];//寬$maxy=$imgarr[1];//長$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; }//對所求值進行取整$minx=floor($maxx*$scale);$miny=floor($maxy*$scale);//添加小圖$minim=imagecreatetruecolor($minx,$miny);//縮放函數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); //輸出實體文件}else{//小圖輸出header("content-type:{$maxm}");$imgout($minim,null,$quality);}//釋放資源imagedestroy($maxim);imagedestroy($minim); }如何使用?
在 showing.php 中的代碼:
if($_GET['img']){ImageOutput($_GET['img'],350,350,null); }在需要引用圖片的頁面,使用類似以下代碼:
echo '<img src="./showimg.php?img=ABC.jpg"/>';如果不想暴露真實圖片路徑,那還需要用一定的“煙霧彈”要掩蓋,這就不展開了。
參考資料:
PHP實例----圖片等比例縮放功能_PHP_wzqnls-CSDN博客?blog.csdn.netPHP瀏覽器中直接輸出圖片_PHP_江南極客-CSDN博客?blog.csdn.net 創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的直接输出代码_php代码:实时输出缩小的图像的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 交流电的有效值rms值_交流电路中的电源
- 下一篇: 茶颜悦色“罚站式”取餐引吐槽 官方回应致