1. 程式人生 > >【轉】PHP用GD庫生成高質量的縮圖片示例程式碼

【轉】PHP用GD庫生成高質量的縮圖片示例程式碼

網站上GD庫通常用來生成縮圖,或者用來對圖片加水印,或者用來生成漢字驗證碼,或者對網站資料生成報表等。在PHP處理影象,可使用GD庫,而GD庫開始時是支援GIF的,但由於GIF使用了有版權爭議的LZW演算法,會引起法律問題,於是從 GD 庫 1.6 版起所有的 GIF 支援都移除了,但是又在 GD 庫 2.0.28 版起又加了回來。如果使用二者之間版本的 GD 庫時 GIF 相關函式不可用。本文章主要介紹php 用GD庫生成高質量的縮圖片的示例程式碼。

以下是PHP原始碼(ResizeImage.php)。

1234567891011121314151617181920212223242526272829
30313233343536373839404142434445464748495051525354555657585960616263
<?php$FILENAME="image.thumb";// 生成圖片的寬度$RESIZEWIDTH=400;// 生成圖片的高度$RESIZEHEIGHT=400;function ResizeImage($im,$maxwidth,$maxheight,$name){$width = imagesx($im);$height = imagesy($im);if(($maxwidth && $width > $maxwidth) || ($maxheight && $height > $maxheight)){
if($maxwidth && $width > $maxwidth){$widthratio = $maxwidth/$width;$RESIZEWIDTH=true;}if($maxheight && $height > $maxheight){$heightratio = $maxheight/$height;$RESIZEHEIGHT=true;}if($RESIZEWIDTH && $RESIZEHEIGHT){if($widthratio < $heightratio){$ratio = $widthratio;}else{
$ratio = $heightratio;}}elseif($RESIZEWIDTH){$ratio = $widthratio;}elseif($RESIZEHEIGHT){$ratio = $heightratio;}$newwidth = $width * $ratio;$newheight = $height * $ratio;if(function_exists("imagecopyresampled")){$newim = imagecreatetruecolor($newwidth, $newheight);imagecopyresampled($newim, $im, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);}else{$newim = imagecreate($newwidth, $newheight);imagecopyresized($newim, $im, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);}ImageJpeg ($newim,$name . ".jpg");ImageDestroy ($newim);}else{ImageJpeg ($im,$name . ".jpg");}}if($_FILES['image']['size']){if($_FILES['image']['type'] == "image/pjpeg"){$im = imagecreatefromjpeg($_FILES['image']['tmp_name']);}elseif($_FILES['image']['type'] == "image/x-png"){$im = imagecreatefrompng($_FILES['image']['tmp_name']);}elseif($_FILES['image']['type'] == "image/gif"){$im = imagecreatefromgif($_FILES['image']['tmp_name']);}if($im){if(file_exists("$FILENAME.jpg")){unlink("$FILENAME.jpg");}ResizeImage($im,$RESIZEWIDTH,$RESIZEHEIGHT,$FILENAME);ImageDestroy ($im);}}?>

以下是測試程式碼(demo.php) 程式碼如下:

12345678910<?phpinclude('ResizeImage.php');if(!empty($_POST)){echo($FILENAME.".jpg?cache=".rand(0,999999));}?><form name="test" action="?submit=true" enctype="multipart/form-data" method="post" ><input type="file" name="image" size="50" value="瀏覽"><p><input type="submit" value="上傳圖片"></form>

鄭州好的男科醫院:http://www.ytsgnk.com/鄭州看男科醫院專業:http://www.ytsgnk.com/鄭州同濟醫院男科諮詢預約:http://www.ytsgnk.com/鄭州看男科多少錢:http://www.ytsgnk.com/鄭州男科醫院哪家好:http://www.ytsgnk.com/鄭州割包皮醫院:https://yyk.familydoctor.com.cn/12248/

相關推薦

PHPGD生成質量圖片示例程式碼

網站上GD庫通常用來生成縮圖,或者用來對圖片加水印,或者用來生成漢字驗證碼,或者對網站資料生成報表等。在PHP處理影象,可使用GD庫,而GD庫開始時是支援GIF的,但由於GIF使用了有版權爭議的LZW演算法,會引起法律問題,於是從 GD 庫 1.6 版起所有的 GIF 支援都移除了,但是又在 GD 庫 2.0

PHP開發經驗之談,看了受益非淺

his 則表達式 處理 手冊 調用 緩存系統 字符串操作函數 如果能 諸多 用單引號代替雙引號來包含字符串,這樣做會更快一些。因為PHP會在雙引號包圍的字符串中搜尋變量,單引號則不會,註意:只有echo能這麽做,它是一種可以把多個字符串當作參數的“函數”(譯註:PHP手冊中

DB2數據函數大全

區號 big index 大整數 第一個 err lower int 指定時間 DB2 內置的函數真的是很多,要精通每個函數幾乎是不可能的,所以本文並不打算介紹每個函數的具體用法,而是提供一個概覽,讓您了解每個函數的功能,這樣,當你感覺你需要某些功能的函數時,再學習它們的具

WordPress數據及各表結構分析

一個 不一定 isp links comm rms log 打開 title 默認WordPress一共有以下11個表。這裏加上了默認的表前綴 wp_ 。wp_commentmeta:存儲評論的元數據wp_comments:存儲評論wp_links:存儲友情鏈接(Blog

PHP面試總結

tar htm itl body .cn clas tps html ref 文章出處:https://www.cnblogs.com/codetao/p/6418127.html【轉】PHP面試總結

PHP date("Y-m-d H:i:s");獲取當前時間 差8小時解決辦法

class etc AS 北京 shang 時間 字母 重啟 asi 原因: 網絡資源

PHP中的後期靜態綁定(Late Static Bindings )

mbo 代碼 當前 test num ngs color public name php5.3版本新增的靜態綁定的靜態綁定語法,也成為PHP的後期靜態綁定,如下 class A{ public static function func1(){ e

Linux C函式參考

  asctime(將時間和日期以字串格式表示)clock(取得程序佔用CPU的大約時間)ctime(將時間和日期以字串格式表示)difftime(計算時間差距)ftime(取得目前的時間和日期)gettimeofday(取得目前的時間)gmtime(取得目前的時間和日期)loca

PHP獲取重定向URL的幾種方法

有時候我們會在開發中,經常會遇到有URL 301或 302重定向的情況,這時候我們可能需要獲取重定向之後的url,下面我們介紹一下幾種獲取重定向url的方法: 1、用get_headers函式php自帶的get_headers函式可以獲取伺服器響應一個HTTP請求所傳送的所有標頭,我們可以嘗試用該函式實現。

系統呼叫和函式以及API

         在寫程式的過程中,像MFC,VC++這些程式設計,都會涉及到函式的呼叫,有庫函式也有系統函式,下面看一看它們的區別!!            系統呼叫(system

PHP:echo、print、print_r、sprintf、var_dump之間的區別

- echo是命令,不能返回值。echo後面可以跟很多個引數,之間用分號隔開,如: echo $myvar1; echo 1,2,$myvar,"<b>bold</b>"; - print是函式,可以返回一個值,只能有一個引數。 - print

PHP 使用GD 生成驗證碼

使用函式 phpinfo();或 gd_info(); 檢視GD 庫相關資訊 如果沒有開啟相關擴充套件 gd_info() 函式將不可用 在 php.ini 配置檔案中 找到 ;extension=php_gd2.dll 去掉前面的分號 儲存

python的Theano的安裝

   最近研究deep learning,於是裝個Theano庫,結果今天折騰了好半天,由於安裝的python版本比較高(3.3版),網上一些簡易的安裝方法就不行了,折騰好久,終於發現一種比較簡單的安裝方法。 分別開啟上面兩個網址,裡面其實是distribute和

實用For xml 生成HTML程式碼

可以利用SQL的For xml直接生成HTML結構,比如我想生成如下結構: <li> <img src="..."/> <input type="hidden" id="sourcePath" value="..." /> <br/&g

完全Linux工作

作者:王垠 我已經半年沒有使用 Windows 的方式工作了。Linux 高效的完成了我所有的工作。 GNU/Linux 不是每個人都想用的。如果你只需要處理一般的事務,打遊戲,那麼你不需要了解下面這些了。 我不是一個狂熱的自由軟體份子,雖然

Pascal到的數和符號

1、PASCAL語言的字元表 是ASCII字符集,主要有:  ⑴26個英文字母(不分大小寫)  ⑵十個數字符號  ⑶特殊符號。如+-*/=><][:;.等 2、識別符號 以字母開頭的字母數字序列(大小寫等效,可跟下劃線_),用來標識常量、變數、程式、函式等。 自定義識別符號時要注意遵循此規則。

關於Python查詢中的函式方式

首先開啟命令列輸入: python -m pydoc -p 1234ython -m pydoc表示開啟pydoc模組,這個模組就是用來檢視python文件的工具-p 1234表示在埠號1234上開啟server,這個埠號可以自行設定原文地址:https://blog.csd

完全Linux工作(王垠)

按: 儘管我們已經不習慣看長篇大論, 但我還是要說, 這是一篇值得你從頭讀到尾的長篇文章. 2005年9月22日,清華在讀博士生王垠在水木社群BLOG上發表了《清華夢的粉碎--寫給清華大學的退學申請》明確要求退學, 引起社會各界廣泛爭論. 他創作的長篇文章《完全用Linux工作》, 洋洋兩萬多字, 從不同角

MYSQL數據四種索引類型的簡單使用--MYSQL組合索引“最左前綴”原則

不同的 lec rnn 修改表 dex 鄭州 blob 單列 提高 MYSQL數據庫索引類型包括普通索引,唯一索引,主鍵索引與組合索引,這裏對這些索引的做一些簡單描述: (1)普通索引 這是最基本的MySQL數據庫索引,它沒有任何限制。它有以下幾種創建方式: 創建索引

完整精確匯入Kernel與Uboot參與編譯了的程式碼到Source Insight,Understand, SlickEdit

The linux kernel and u-boot contains lots of files, when we want to broswe the source code,we just want to see these compiled files, and the header file