亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > PHP > 正文

php通用圖片處理類的用法

2020-03-22 19:22:24
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了php實現的通用圖片處理類,可實現針對圖片的縮放、剪切、相框、水印、銳化、旋轉、翻轉、透明度、反色等功能,具有一定參考借鑒價值,需要的朋友可以參考下

本文實例講述了php實現的通用圖片處理類。分享給大家供大家參考。具體如下:

該圖片處理函數功能:縮放、剪切、相框、水印、銳化、旋轉、翻轉、透明度、反色,處理并保存歷史記錄的思路:當有圖片有改動時自動生成一張新圖片,命名方式可以考慮在原圖片的基礎上加上步驟,例如:圖片名稱+__第幾步。 在一些需要圖片高級處理功能的Web應用中,可以參考這個類。

 ?phphtml' target='_blank'>class picture var $PICTURE_URL;//要處理的圖片 var $DEST_URL= temp__01.jpg //生成目標圖片位置 var $PICTURE_CREATE;//要創建的圖片 var $TURE_COLOR;//新建一個真彩圖象 var $PICTURE_WIDTH;//原圖片寬度 var $PICTURE_HEIGHT;//原圖片高度水印的類型,默認的為水印文字 var $MARK_TYPE=1; var $WORD;//經過UTF-8后的文字 var $WORD_X;//文字橫坐標 var $WORD_Y;//文字縱坐標 var $FONT_TYPE;//字體類型 var $FONT_SIZE= 12 //字體大小 var $FONT_WORD;//文字 var $ANGLE=0;//文字的角度,默認為0 var $FONT_COLOR= #000000 //文字顏色 var $FONT_PATH= font/simkai.ttf //字體庫,默認為宋體 var $FORCE_URL;//水印圖片 var $FORCE_X=0;//水印橫坐標 var $FORCE_Y=0;//水印縱坐標 var $FORCE_START_X=0;//切起水印的圖片橫坐標 var $FORCE_START_Y=0;//切起水印的圖片縱坐標 var $PICTURE_TYPE;//圖片類型 var $PICTURE_MIME;//輸出的頭部縮放比例為1的話就按縮放高度和寬度縮放 var $ZOOM=1;//縮放類型 var $ZOOM_MULTIPLE;//縮放比例 var $ZOOM_WIDTH;//縮放寬度 var $ZOOM_HEIGHT;//縮放高度裁切,按比例和固定長度、寬度 var $CUT_TYPE=1;//裁切類型 var $CUT_X=0;//裁切的橫坐標 var $CUT_Y=0;//裁切的縱坐標 var $CUT_;//裁切的寬度 var $CUT_HEIGHT=100;//裁切的高度 var $SHARP= 7.0 //銳化程度透明度處理 var $ALPHA= 100 //透明度在0-127之間 var $ALPHA_X= 90  var $ALPHA_Y= 50 任意角度旋轉 var $CIRCUMROTATE= 90.0 //注意,必須為浮點數 var $ERROR=array( unalviable = 沒有找到相關圖片! 構造函數:函數初始化 function __construct($PICTURE_URL) $this- get_info($PICTURE_URL); function get_info($PICTURE_URL) 處理原圖片的信息,先檢測圖片是否存在,不存在則給出相應的信息 @$SIZE=getimagesize($PICTURE_URL); if(!$SIZE) exit($this- ERROR[ unalviable  //得到原圖片的信息類型、寬度、高度 $this- PICTURE_MIME=$SIZE[ mime  $this- PICTURE_; $this- PICTURE_HEIGHT=$SIZE[1]; //創建圖片 switch($SIZE[2]) case 1: $this- PICTURE_CREATE=imagecreatefromgif($PICTURE_URL); $this- PICTURE_TYPE= imagejpeg  $this- PICTURE_EXT= jpg  break; case 2: $this- PICTURE_CREATE=imagecreatefromjpeg($PICTURE_URL); $this- PICTURE_TYPE= imagegif  $this- PICTURE_EXT= gif  break; case 3: $this- PICTURE_CREATE=imagecreatefrompng($PICTURE_URL); $this- PICTURE_TYPE= imagepng  $this- PICTURE_EXT= png  break; 文字顏色轉換16進制轉換成10進制 preg_match_all( /([0-f]){2,2}/i ,$this- FONT_COLOR,$MATCHES); if(count($MATCHES)==3) $this- RED=hexdec($MATCHES[0][0]); $this- GREEN=hexdec($MATCHES[0][1]); $this- BLUE=hexdec($MATCHES[0][2]); //end of __construct 將16進制的顏色轉換成10進制的(R,G,B) function hex2dec() preg_match_all( /([0-f]){2,2}/i ,$this- FONT_COLOR,$MATCHES); if(count($MATCHES)==3) $this- RED=hexdec($MATCHES[0][0]); $this- GREEN=hexdec($MATCHES[0][1]); $this- BLUE=hexdec($MATCHES[0][2]); //縮放類型 function zoom_type($ZOOM_TYPE) $this- ZOOM=$ZOOM_TYPE; //對圖片進行縮放,如果不指定高度和寬度就進行縮放 function zoom() //縮放的大小 if($this- ZOOM==0) $this- ZOOM_;gt;PICTURE_WIDTH * $this- ZOOM_MULTIPLE; $this- ZOOM_HEIGHT=$this- PICTURE_HEIGHT * $this- ZOOM_MULTIPLE; //新建一個真彩圖象 $this- TRUE_COLOR=imagecreatetruecolor($this- ZOOM_WIDTH,$this- ZOOM_HEIGHT); $WHITE=imagecolorallocate($this- TRUE_COLOR,255,255,255); imagefilledrectangle($this- TRUE_COLOR,0,0,$this- ZOOM_WIDTH,$this- ZOOM_HEIGHT,$WHITE); imagecopyresized($this- TRUE_COLOR,$this- PICTURE_CREATE,0,0,0,0,$this- ZOOM_WIDTH,$this- ZOOM_HEIGHT,$this- PICTURE_WIDTH,$this- PICTURE_HEIGHT); //end of zoom //裁切圖片,按坐標或自動 function cut() $this- TRUE_COLOR=imagecreatetruecolor($this- CUT_WIDTH,$this- CUT_WIDTH); imagecopy($this- TRUE_COLOR,$this- PICTURE_CREATE, 0, 0, $this- CUT_X, $this- CUT_Y,$this- CUT_WIDTH,$this- CUT_HEIGHT); //end of cut 在圖片上放文字或圖片 水印文字 function _mark_text() $this- TRUE_COLOR=imagecreatetruecolor($this- PICTURE_WIDTH,$this- PICTURE_HEIGHT); $this- WORD=mb_convert_encoding($this- FONT_WORD, utf-8 , gb2312  取得使用 TrueType 字體的文本的范圍 $TEMP = imagettfbbox($this- FONT_SIZE,0,$this- FONT_PATH,$this- WORD); $WORD_LENGTH=strlen($this- WORD); $WORD_WIDTH =$TEMP[2] - $TEMP[6]; $WORD_HEIGHT =$TEMP[3] - $TEMP[7]; 文字水印的默認位置為右下角 if($this- WORD_X== ) $this- WORD_X=$this- PICTURE_WIDTH-$WORD_WIDTH; if($this- WORD_Y== ) $this- WORD_Y=$this- PICTURE_HEIGHT-$WORD_HEIGHT; imagesettile($this- TRUE_COLOR,$this- PICTURE_CREATE); imagefilledrectangle($this- TRUE_COLOR,0,0,$this- PICTURE_WIDTH,$this- PICTURE_HEIGHT,IMG_COLOR_TILED); $TEXT2=imagecolorallocate($this- TRUE_COLOR,$this- RED,$this- GREEN,$this- Blue); imagettftext($this- TRUE_COLOR,$this- FONT_SIZE,$this- ANGLE,$this- WORD_X,$this- WORD_Y,$TEXT2,$this- FONT_PATH,$this- WORD); 水印圖片function _mark_picture() 獲取水印圖片的信息 @$SIZE=getimagesize($this- FORCE_URL); if(!$SIZE) exit($this- ERROR[ unalviable  $FORCE_PICTURE_; $FORCE_PICTURE_HEIGHT=$SIZE[1]; //創建水印圖片 switch($SIZE[2]) case 1: $FORCE_PICTURE_CREATE=imagecreatefromgif($this- FORCE_URL); $FORCE_PICTURE_TYPE= gif  break; case 2: $FORCE_PICTURE_CREATE=imagecreatefromjpeg($this- FORCE_URL); $FORCE_PICTURE_TYPE= jpg  break; case 3: $FORCE_PICTURE_CREATE=imagecreatefrompng($this- FORCE_URL); $FORCE_PICTURE_TYPE= png  break; 判斷水印圖片的大小,并生成目標圖片的大小,如果水印比圖片大,則生成圖片大小為水印圖片的大小。否則生成的圖片大小為原圖片大小。 $this- NEW_PICTURE=$this- PICTURE_CREATE; if($FORCE_PICTURE_WIDTH $this- PICTURE_WIDTH) $CREATE_;gt;FORCE_START_X; else $CREATE_;gt;PICTURE_WIDTH; if($FORCE_PICTURE_HEIGHT $this- PICTURE_HEIGHT) $CREATE_HEIGHT=$FORCE_PICTURE_HEIGHT-$this- FORCE_START_Y; else $CREATE_HEIGHT=$this- PICTURE_HEIGHT; 創建一個畫布 $NEW_PICTURE_CREATE=imagecreatetruecolor($CREATE_WIDTH,$CREATE_HEIGHT); $WHITE=imagecolorallocate($NEW_PICTURE_CREATE,255,255,255); 將背景圖拷貝到畫布中 imagecopy($NEW_PICTURE_CREATE, $this- PICTURE_CREATE, 0, 0, 0, 0,$this- PICTURE_WIDTH,$this- PICTURE_HEIGHT); 將目標圖片拷貝到背景圖片上 imagecopy($NEW_PICTURE_CREATE, $FORCE_PICTURE_CREATE, $this- FORCE_X, $this- FORCE_Y, $this- FORCE_START_X, $this- FORCE_START_Y,$FORCE_PICTURE_WIDTH,$FORCE_PICTURE_HEIGHT); $this- TRUE_COLOR=$NEW_PICTURE_CREATE;//end of markfunction alpha_() $this- TRUE_COLOR=imagecreatetruecolor($this- PICTURE_WIDTH,$this- PICTURE_HEIGHT); $rgb= #CDCDCD  $tran_color= #000000  for($j=0;$j =$this- PICTURE_HEIGHT-1;$j++) for ($i=0;$i =$this- PICTURE_WIDTH-1;$i++) $rgb = imagecolorat($this- PICTURE_CREATE,$i,$j); $r = ($rgb 16) 0xFF; $g = ($rgb 8) 0xFF; $b = $rgb 0xFF; $now_color=imagecolorallocate($this- PICTURE_CREATE,$r,$g,$b); if ($now_color==$tran_color) continue; else $color=imagecolorallocatealpha($this- PICTURE_CREATE,$r,$g,$b,$ALPHA); imagesetpixel($this- PICTURE_CREATE,$ALPHA_X+$i,$ALPHA_Y+$j,$color); $this- TRUE_COLOR=$this- PICTURE_CREATE;圖片旋轉:沿y軸旋轉function turn_y() $this- TRUE_COLOR=imagecreatetruecolor($this- PICTURE_WIDTH,$this- PICTURE_HEIGHT); for ($x = 0; $x $this- PICTURE_WIDTH; $x++) imagecopy($this- TRUE_COLOR, $this- PICTURE_CREATE, $this- PICTURE_WIDTH - $x - 1, 0, $x, 0, 1, $this- PICTURE_HEIGHT);沿X軸旋轉function turn_x() $this- TRUE_COLOR=imagecreatetruecolor($this- PICTURE_WIDTH,$this- PICTURE_HEIGHT); for ($y = 0; $y $this- PICTURE_HEIGHT; $y++) imagecopy($this- TRUE_COLOR, $this- PICTURE_CREATE, 0, $this- PICTURE_HEIGHT - $y - 1, 0, $y, $this- PICTURE_WIDTH, 1);任意角度旋轉function turn() $this- TRUE_COLOR=imagecreatetruecolor($this- PICTURE_WIDTH,$this- PICTURE_HEIGHT); imageCopyResized($this- TRUE_COLOR,$this- PICTURE_CREATE,0,0,0,0,$this- PICTURE_WIDTH,$this- PICTURE_HEIGHT,$this- PICTURE_WIDTH,$this- PICTURE_HEIGHT); $WHITE=imagecolorallocate($this- TRUE_COLOR,255,255,255); $this- TRUE_COLOR=imagerotate ($this- TRUE_COLOR, $this- CIRCUMROTATE, $WHITE);function sharp() $this- TRUE_COLOR=imagecreatetruecolor($this- PICTURE_WIDTH,$this- PICTURE_HEIGHT); $cnt=0; for ($x=0; $x $this- PICTURE_WIDTH; $x++) for ($y=0; $y $this- PICTURE_HEIGHT; $y++) $src_clr1 = imagecolorsforindex($this- TRUE_COLOR, imagecolorat($this- PICTURE_CREATE, $x-1, $y-1)); $src_clr2 = imagecolorsforindex($this- TRUE_COLOR, imagecolorat($this- PICTURE_CREATE, $x, $y)); $r = intval($src_clr2[ red ]+$this- SHARP*($src_clr2[ red ]-$src_clr1[ red ])); $g = intval($src_clr2[ green ]+$this- SHARP*($src_clr2[ green ]-$src_clr1[ green ])); $b = intval($src_clr2[ blue ]+$this- SHARP*($src_clr2[ blue ]-$src_clr1[ blue ])); $r = min(255, max($r, 0)); $g = min(255, max($g, 0)); $b = min(255, max($b, 0)); if (($DST_CLR=imagecolorexact($this- PICTURE_CREATE, $r, $g, $b))==-1) $DST_CLR = imagecolorallocate($this- PICTURE_CREATE, $r, $g, $b); $cnt++; if ($DST_CLR==-1) die( color allocate faile at $x, $y ($cnt).  imagesetpixel($this- TRUE_COLOR, $x, $y, $DST_CLR); 將圖片反色處理??function return_color() 創建一個畫布 $NEW_PICTURE_CREATE=imagecreate($this- PICTURE_WIDTH,$this- PICTURE_HEIGHT); $WHITE=imagecolorallocate($NEW_PICTURE_CREATE,255,255,255); 將背景圖拷貝到畫布中 imagecopy($NEW_PICTURE_CREATE, $this- PICTURE_CREATE, 0, 0, 0, 0,$this- PICTURE_WIDTH,$this- PICTURE_HEIGHT); $this- TRUE_COLOR=$NEW_PICTURE_CREATE;生成目標圖片并顯示function show() // 判斷瀏覽器,若是IE就不發送頭 if(isset($_SERVER[ HTTP_USER_AGENT ])) $ua = strtoupper($_SERVER[ HTTP_USER_AGENT  if(!preg_match( /^.*MSIE.*/)$/i ,$ua)) header( Content-type:$this- PICTURE_MIME  $OUT=$this- PICTURE_TYPE; $OUT($this- TRUE_COLOR);生成目標圖片并保存function save_picture() // 以 JPEG 格式將圖像輸出到瀏覽器或文件 $OUT=$this- PICTURE_TYPE; if(function_exists($OUT)) // 判斷瀏覽器,若是IE就不發送頭 if(isset($_SERVER[ HTTP_USER_AGENT ])) $ua = strtoupper($_SERVER[ HTTP_USER_AGENT  if(!preg_match( /^.*MSIE.*/)$/i ,$ua)) header( Content-type:$this- PICTURE_MIME  if(!$this- TRUE_COLOR) exit($this- ERROR[ unavilable  else $OUT($this- TRUE_COLOR,$this- DEST_URL); $OUT($this- TRUE_COLOR);析構函數:釋放圖片function __destruct()/*釋放圖片*/ imagedestroy($this- TRUE_COLOR); imagedestroy($this- PICTURE_CREATE);//end of class? 

總結:以上就是本篇文的全部內容,希望能對大家的學習有所幫助。

相關推薦:

php自定義數組變量存放全球各個時區信息

PHP生成指定隨機字符串的簡單實現方法_php技巧

php數組調用與函數執行的方法

以上就是php通用圖片處理類的用法的詳細內容,PHP教程

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品视频久久| 国产亚洲欧美日韩一区二区| 97免费视频在线播放| 亚洲精品国产精品自产a区红杏吧| 亚洲人成在线免费观看| 久久九九精品99国产精品| 国产精品免费久久久久久| 欧美视频国产精品| 亚洲bt天天射| 久久天天躁狠狠躁夜夜躁| 欧美专区国产专区| 久久夜精品va视频免费观看| 亚洲色图激情小说| 91亚洲精品视频| 国产欧美欧洲在线观看| 欧美大片免费看| 欧美日韩免费在线| 精品呦交小u女在线| 国产免费一区二区三区在线观看| 亚洲在线观看视频网站| 久久视频免费在线播放| 国产suv精品一区二区| 欧美在线国产精品| 91亚洲精品在线| 操91在线视频| 国内自拍欧美激情| 亚洲va国产va天堂va久久| 亚洲精品日韩丝袜精品| 91精品国产777在线观看| 欧美在线视频观看免费网站| 色999日韩欧美国产| 欧美日韩国产页| www.欧美三级电影.com| 亚洲欧美精品一区| 亚洲激情自拍图| 久久综合久久八八| 亚洲xxx自由成熟| 欧美激情亚洲国产| 国产一区香蕉久久| 全亚洲最色的网站在线观看| 久久五月天色综合| 国产精品久久久久久久久免费看| 亚洲少妇中文在线| 精品国产鲁一鲁一区二区张丽| 精品露脸国产偷人在视频| 亚洲天堂av综合网| 97精品免费视频| 国产视频久久久久久久| 亚洲最大福利视频网站| 国内成人精品视频| 国产脚交av在线一区二区| 欧美日韩另类视频| 国产精品夫妻激情| 秋霞av国产精品一区| 久久九九热免费视频| 国产精品欧美激情| 久久夜色精品国产| 欧美孕妇性xx| 在线亚洲国产精品网| 狠狠色狠狠色综合日日五| 不卡av电影在线观看| 国产成人一区二区在线| 九九久久综合网站| 久久影视三级福利片| 亚洲综合中文字幕68页| 久操成人在线视频| 91亚洲精品久久久| 亚洲欧美日韩精品| 中文字幕欧美日韩在线| 另类图片亚洲另类| 国产美女搞久久| 伊人久久男人天堂| 色系列之999| 欧美日韩成人精品| 日本欧美精品在线| 欧美大片在线看免费观看| 国产精品久在线观看| 亚洲老板91色精品久久| 精品国产一区二区三区久久狼5月| 97精品久久久中文字幕免费| 91精品国产色综合久久不卡98口| 91精品国产综合久久香蕉的用户体验| 中文字幕精品一区二区精品| 成人亚洲欧美一区二区三区| 青青草原一区二区| 精品国产老师黑色丝袜高跟鞋| 岛国精品视频在线播放| 欧美中文字幕视频在线观看| 日韩一二三在线视频播| 国产精品无av码在线观看| 久久久噜噜噜久久久| 久久夜色精品国产| 久久福利网址导航| 国产国语videosex另类| 啊v视频在线一区二区三区| 在线看日韩欧美| 久久在精品线影院精品国产| 丰满岳妇乱一区二区三区| 亚洲综合在线小说| 成人黄色生活片| 久久视频中文字幕| 成人网在线视频| 欧美一区第一页| 一区二区在线视频播放| 日韩av毛片网| 久久久天堂国产精品女人| 日韩av手机在线| 欧美激情视频免费观看| 欧美精品videofree1080p| 中文字幕亚洲无线码在线一区| 久久久久久亚洲精品中文字幕| 成人欧美一区二区三区黑人| 亚洲精品之草原avav久久| 国产91精品久| 黑人巨大精品欧美一区二区三区| 亚洲综合中文字幕在线观看| 国产一区二区久久精品| 91久久精品国产91久久| 日韩免费av在线| 一区二区三区 在线观看视| 亚洲香蕉成视频在线观看| 青青久久av北条麻妃黑人| 成人日韩在线电影| 成人h片在线播放免费网站| 57pao成人国产永久免费| 久久久久久有精品国产| xxx一区二区| 在线观看精品自拍私拍| 国产成人拍精品视频午夜网站| 欧美极品少妇全裸体| 日韩有码在线视频| 亚洲综合色激情五月| 欧美做受高潮1| 亚洲a中文字幕| 97在线看免费观看视频在线观看| 91九色单男在线观看| 亚洲qvod图片区电影| 久久久久久欧美| 高清在线视频日韩欧美| 亚洲国产私拍精品国模在线观看| 播播国产欧美激情| 另类少妇人与禽zozz0性伦| 一区二区三区回区在观看免费视频| 国产精品日日摸夜夜添夜夜av| 91久久久久久久一区二区| 色琪琪综合男人的天堂aⅴ视频| 性色av一区二区三区免费| 欧美高清videos高潮hd| 亚洲电影免费观看高清| 91亚洲精品在线观看| 欧美一级片在线播放| 尤物yw午夜国产精品视频明星| 丝袜美腿亚洲一区二区| 欧美激情xxxx性bbbb| 91麻豆国产精品| 欧美另类极品videosbest最新版本| 国产精品久久久久久一区二区| 另类美女黄大片| 中文字幕亚洲欧美一区二区三区| 欧美日韩另类视频| 国产精品一区二区性色av| 欧美视频免费在线| 国产精品久久在线观看| 亚洲第一区在线|