自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

深入探討PHP生成縮略圖的實(shí)現(xiàn)方法

開發(fā) 后端
PHP生成縮略圖的實(shí)現(xiàn)對于剛剛接觸PHP語言,并沒有太多實(shí)際編程經(jīng)驗(yàn)的新手來說是一個(gè)比較難以掌握的知識。下面我們就為大家奉上了這一功能實(shí)現(xiàn)的代碼示例。

我們在運(yùn)用PHP語言進(jìn)行實(shí)際代碼編寫的時(shí)候,遇到一個(gè)新的需求,通常都會(huì)通過自己不斷積累的經(jīng)驗(yàn)來解決這以需求的實(shí)現(xiàn)。下面我們?yōu)榱嗽黾哟蠹业木幋a經(jīng)驗(yàn),特地介紹了一下有關(guān)PHP生成縮略圖的相關(guān)方法。#t#

PHP生成縮略圖HTML代碼

 

  1. < !DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> 
  2. < HTML> 
  3. < HEAD> 
  4. < TITLE> 上傳圖片 < /TITLE> 
  5. < META NAME="Generator" CONTENT="EditPlus"> 
  6. < META NAME="Author" CONTENT=""> 
  7. < META NAME="Keywords" CONTENT=""> 
  8. < META NAME="Description" CONTENT=""> 
  9. < meta http-equiv="Content-Type" content="text/html; charset=gbk" /> 
  10. < /HEAD> 
  11.  
  12. < BODY> 
  13. < FORM METHOD="POST" ACTION="tu.php?act=upload" enctype="multipart/form-data" > 
  14. < p>< INPUT TYPE="file" NAME="file"/>< /p> 
  15. < p>< INPUT TYPE="submit" value="hao"/>  < INPUT TYPE="reset"/>< /p> 
  16. < /FORM> 
  17. < /BODY> 
  18. < /HTML> 

 


PHP生成縮略圖PHP代碼

 

  1. < ?php  
  2. /*后臺登陸界面  
  3. *黃春龍學(xué)習(xí)編寫  
  4. *首寫時(shí)間:2009-10-27  
  5. *更新時(shí)間:2009/11/24  
  6. */  
  7. require_once '../xmphp/init.php';
  8. //全站配置文件  
  9. require_once XMPHP_COMMON.'/smarty.php';
  10. //smarty功能  
  11. require_once XMPHP_COMMON.'/mysql.php';
  12. //mysql功能  
  13. require_once XMPHP_COMMON.'/func.php';
  14. //常用函數(shù)  
  15. if(isset($_GET['act'])&&$_GET['act']
    =='upload'){  
  16. $file=$_FILES['file'];  
  17. $info=pathinfo($file['name']);  
  18. $a=array('jpg','gif','png');  
  19. if(!in_array($info['extension'],$a)){  
  20. alert("請選擇jpg,gif,png格式的圖片
    進(jìn)行上傳");  
  21. exit;  
  22. }  
  23. if($file['name'] !=''){  
  24. $dirname=date('Ym');  
  25. $dirname='../upload/'.$dirname;
  26. //原圖路徑  
  27. $xin=$dirname.'/s';//PHP生成縮略圖路徑  
  28. if(!file_exists($xin)){  
  29. @mkdir($xin);  
  30. }  
  31. $image1=$info['filename'].'120_120'.'.'
    .$info['extension'];//縮略圖名稱  
  32. $image2=$info['filename'].'300_300'.'.'
    .$info['extension'];//縮略圖名稱  
  33. list($imagw,$imagh)=getimagesize($file
    ['tmp_name']);//取得原圖的寬高(另外$file
    ['tmp_name']只是一個(gè)臨時(shí)文件路徑,有時(shí)可能
    會(huì)報(bào)錯(cuò),如報(bào)錯(cuò)只需把臨時(shí)文件路徑改成你上傳
    后的原圖的路徑即可)  
  34. //120圖判斷各種情況來取得縮略圖的寬高  
  35. if($imagw< =120&&$imagh< =120){  
  36. $m120w=$imagw;  
  37. $m120h=$imagh;  
  38. }elseif($imagw>$imagh)  
  39. {  
  40. $m120w=120;  
  41. $m120h=intval($m120w/number_format(
    $imagw/$imagh,2));//縮略圖的寬除以(原
    圖的寬除以原圖的高)number_format查手冊  
  42. }  
  43. else  
  44. {  
  45. $m120h=300;  
  46. $m120w=intval($m120h/number_format(
    $imagh/$imagw,2));//縮略圖的高除以(原圖
    的高除以原圖的寬)number_format查手冊  
  47. }  
  48. //300圖判斷各種情況來取得縮略圖的寬高  
  49. if($imagw< =300&&$imagh< =300){  
  50. $m300w=$imagw;  
  51. $m300h=$imagh;  
  52. }elseif($imagw>$imagh){  
  53. $m300w=300;  
  54. $m300h=intval($m300w/number_format(
    $imagw/$imagh,2));//縮略圖的寬除以(原
    圖的寬除以原圖的高)number_format查手冊  
  55. }else{  
  56. $m300h=300;  
  57. $m300w=intval($m300h/number_format(
    $imagh/$imagw,2));//縮略圖的高除以(原
    圖的高除以原圖的寬)number_format查手冊  
  58. }  
  59. if($info['extension']=='jpg'){  
  60. $info['extension']='jpeg';//判斷圖像類
    型如果是JPG的則把它轉(zhuǎn)換成JPEG的因?yàn)閳D像處
    理函數(shù)在處理JPG的時(shí)候都是用的JPEG而不是JPG  
  61. }  
  62. $iml='imagecreatefrom'.$info['extension'];
  63. //取得不同圖片格式的不同函數(shù)  
  64. $yuan=$iml($file['tmp_name']);
  65. //根據(jù)前面取的不同函數(shù)來取的原圖的標(biāo)識  
  66. $mu1=imagecreatetruecolor($m120w,$m120h);
  67. //取的要生成的縮略圖的標(biāo)識  
  68. $mu2=imagecreatetruecolor($m300w,$m300h);
  69. //取的要生成的縮略圖的標(biāo)識  
  70. $c='image'.$info['extension'];
  71. //生成輸出縮略圖的函數(shù),不能分開寫,否則報(bào)錯(cuò)  
  72. imagecopyresampled($mu1,$yuan,0,0,0,
    0,$m120w,$m120h,$imagw,$imagh);//生成縮略圖120  
  73. $res=$c($mu1,$xin.'/'.$image1);
  74. //存放縮略圖  
  75. if(!$res){  
  76. alert('生成120縮略圖失敗');  
  77. exit;  
  78. }  
  79. imagecopyresampled($mu2,$yuan,0,0
    ,0,0,$m300w,$m300h,$imagw,$imagh);
  80. //PHP生成縮略圖生成縮略圖120  
  81. $res=$c($mu2,$xin.'/'.$image2);
  82. //存放縮略圖  
  83. if($res){  
  84. alert('生成300縮略圖成功');  
  85. exit;  
  86. }  
  87. }  
  88. }  
  89. $tpl->display("tu/tu.html");  
  90. ?> 

以上這一大段的代碼示例就是PHP生成縮略圖的相關(guān)實(shí)現(xiàn)方法。

責(zé)任編輯:曹凱 來源: 百度博客
相關(guān)推薦

2009-12-01 16:34:21

PHP表單

2009-08-12 16:33:37

.NET生成縮略圖

2009-12-10 13:14:26

PHP下拉框

2010-07-21 09:38:15

PHP緩存技術(shù)

2009-12-07 16:07:03

PHP類的繼承

2009-08-28 15:19:17

C#實(shí)現(xiàn)縮略圖

2013-08-12 15:26:49

測試

2009-12-07 13:55:58

PHP array_m

2009-12-01 15:48:12

提高PHP運(yùn)行效率

2009-12-02 11:20:56

PHP命令行參數(shù)

2009-12-02 16:46:18

PHPMailer

2013-12-02 15:07:57

jQuery插件

2009-10-26 17:38:22

VB.NET實(shí)現(xiàn)縮略圖

2009-12-01 10:11:51

PHP自動(dòng)獲取關(guān)鍵詞

2009-12-07 19:06:20

PHP mysql_f

2012-07-18 20:59:40

jQuery

2019-02-15 14:00:57

Linux命令縮略圖

2020-11-02 14:49:46

GitHub Java圖片

2009-10-30 16:31:55

VB.NET重載方法

2022-02-21 16:38:19

Serverless圖片視頻
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號