Php影像處理類別程式碼分享
目前只實現了三個功能:1:圖片縮放,2:圖片裁剪,3:加圖片水印
在實例化中,透過給第二個參數傳遞不同的值,從而實現不同的功能
複製程式碼 程式碼如下:
include "image.class.php";
$image=new image("2.png", 1, "300", "500", "5.png" ); //使用圖片縮放功能
$image=new image("2.png", 2, "0,0", "50,50", "5.png"); //使用圖片裁切功能
$ image=new image("2.png", 3, "1.png", "0", "5.png"); //使用加圖浮水印功能
$image->outimage();
?>
PHP程式碼
複製程式碼 程式碼如下:
/*已知問題:1.在圖片縮放功能中,使用imagecreatetruecolor函數建立畫布,並使用透明處理演算法,但PNG格式的圖片無法透明。用imagecreate函數建立畫布可以解決這個問題,但是縮放出來的圖片色數太少了
*
*
*type值:
* (1):代表使用圖片縮放功能,此時,$value1代表縮放後圖片的寬度,$value2代表縮放後圖片的高度
* (2):代表使用圖片裁剪功能,此時,$value1代表裁剪開始點的座標,例:從原點開始即是「0,0」前面是x軸後面是y軸,中間用,分隔,$value2代表裁剪的寬度和高度,同樣也是“20,20”的形式使用
* (3):代表使用加圖片水印功能,此時,$value1代表水印圖片的檔名,$value2代表浮水印在圖片中的位置,有10值個可以選,1代表左上,2代表左中,3代表左右,4代表中左,5代表中中,6代表中右, 7代表下做,8代表下中,9代表下右,0代表隨機位置
*
*/
class image{
private $types; //使用的功能編號,1為圖片縮放功能2為圖片裁剪功能3,為圖片加上圖片浮水印功能
private $imgtype;//圖片的格式
private $image; //圖片資源
private $width;//圖片寬度
private $height;//圖片高度
private $value1; //根據所傳type值的不同,$value1分別代表不同的值
private $value2;//根據所傳type值的不同,$value2分別代表不同的值
private $endaddress;//輸出後的位址+檔名
function __construct($imageaddress, $types, $value1="", $value2="", $endaddress){
$this->types=$types;
$this->image=$this-> imagesources($imageaddress);
$this->width=$this->imagesizex();
$this->height=$this->imagesizey();
$this->value1=$value1;
$this- >value2=$value2;
$this->endaddress=$endaddress;
}
function outimage(){ //根據傳入type值的不同,輸出不同的功能
switch($this->types){
case 1:
$this->scaling();
break;
case 2:
$this->clipping();
break;
case 3:
$this->imagewater();
case 3:
$this->imagewater();
ault; return false;
}
}
private function imagewater(){ //加圖片水印功能
//用函數獲取水印文件的長和寬
$imagearrs=$this->getimagearr($this->value1);
1);
1); //呼叫函數計算出水印載入的位置
$positi $imagearrs[0], $imagearrs[1]);
//加浮水印
imagecopy($this->image, $this->imagesources($this-> value1), $positionarr[0], $positionarr[1], 0, 0, $imagearrs[0], $imagearrs[1]);
//呼叫輸出方法儲存
$this->output($this-> image);
}
private function clipping(){ //圖片裁切功能
//將傳進來的值分別賦給變數
list($src_x, $src_y)=explode(",", $this->value1 );
list($dst_w, $dst_h)=explode(",", $this->value2);
if($this->width height return false;
}
//創建新的畫布資源
$newimg=imagecreatetruecolor($dst_w, $dst_h);
///////進行裁剪
newimg, $this->image, 0, 0, $src_x, $src_y, $dst_w, $dst_h, $dst_w, $dst_h);
//呼叫輸出方法儲存
$this->output($newimg);
}
private function scaling(){ //圖片縮放功能
//獲取等比縮放的寬和高
$this-> proimagesize();
//根據參數進行縮放,並調用輸出函數保存處理後的文件
$this->output($this->imagescaling());
}
private function imagesources($imgad){ //取得圖片類型並開啟圖片資源
$imagearray=$this->getimagearr($imgad);
switch($imagearray[2]){
case 1://gif
$this->imgtype=1;
$img=imagecreatefromgif($imgad);
break;
case 2://jpeg-
break; >imgtype=2;
$img=imagecreatefromjpeg($imgad);
break;
case 3://png
$this->imgtype=3;
$img=imagecreatefrompng($imgbreak); 簡單
return false;
}
return $img;
}
private function imagesizex(){ //得到圖片寬度
return imagesx($this->image); 獲取高度圖片
private f
return imagesy($this->image);
}
private function proimagesize(){ //計算等比縮放的圖片的寬和高
if($this->value1 && ($this->width
$this->value1=round(($this->value2/ $this->height)*$this->width);
}else{
$this- >value2=round(($this->value1/ $this->width) * $this->height);
}
}
private function imagescaling(){//映像縮放功能,傳回處理後的映像資源
$newimg=imagecreatetruecolor($this->value1, $this->value2);
$tran=imagecolortransparent($this-this-image) ;//處理透明演算法
if($tran >= 0 && $tran image)){
$tranarr=imagecolorsforindex($this->image, $tran);
$newcolor=imagecolorallocate( $newimg, $tranarr['red'], $tranarr['green'], $tranarr['blue']);
imagefill($newimg, 0, 0, $newcolor);
imagecolortransparent($newimg, $newcolor );
}
imagecopyresampled($newimg, $this->image, 0, 0, 0, 0, $this->value1, $this->value2, $this->width, $this->height);
return $newimg;
}
private function output($image){//輸出圖片
switch($this->imgtype){
case 1:
imagegif($image, $this->endaddress)break
); case 2:
imagejpeg($image, $this->endaddress);
break;
case 3:
imagepng($image, $this->endaddress);
break;
default:
turn fse};
private function getimagearr($imagesou){//返回圖像屬性數組方法
return getimagesize($imagesou);
}
private function position($num, $width, $height){//根據傳入的數字返回一個位置的座標,$width和$height分別代表插入影像的寬和高
switch($num){
case 1:
$positionarr[0]=0;
$positionarr[1]=0;
break;
case 2:
$positionarr[0]=($this->width-$width)/2;
$positionarr[1]=0;
break;
case 3:
$positionarr[0]=$this-> width-$width;
$positionarr[1]=0;
break;
case 4:
$positionarr[0]=0;
$positionarr[1]=($this->height-$height)/2;
break;
case 5:
$positionarr[0]=($this->width-$width)/2;
$positionarr[1]=($this->height-$height)/2;
break;
case 6:
$positionarr[0]=$this->width-$width;
$positionarr[1]=($this->height-$height)/2;
break;
cbreakase 7:
$position
$position; [0]=0;
$positionarr[1]=$this->height-$height;
break;
case 8:
$positionarr[0]=($this->width-$width)/2;
$positionarr[1]=$this->height-$height;
break;
case 9:
$positionarr[0]=$this->width-$width;
$positionarr[1]=$this->height -$height;
break;
case 0:
$positionarr[0]=rand(0, $this->width-$width);
$positionarr[1]=rand(0, $this->height-$ height);
break;
}
return $positionarr;
}
function __destruct(){
imagedestroy($this->image);
}
}
以上就介紹了 Php影像處理程式碼分享,包括了方面的內容,希望對PHP教學有興趣的朋友有所幫助。

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

許多用戶在選擇智慧型手錶的時候都會選擇的華為的品牌,其中華為GT3pro和GT4都是非常熱門的選擇,不少用戶都很好奇華為GT3pro和GT4有什麼區別,下面就給大家介紹一下二者。華為GT3pro和GT4有什麼差別一、外觀GT4:46mm和41mm,材質是玻璃鏡板+不鏽鋼機身+高分纖維後殼。 GT3pro:46.6mm和42.9mm,材質是藍寶石玻璃鏡+鈦金屬機身/陶瓷機身+陶瓷後殼二、健康GT4:採用最新的華為Truseen5.5+演算法,結果會更加的精準。 GT3pro:多了ECG心電圖和血管及安

為什麼截圖工具在Windows11上不起作用了解問題的根本原因有助於找到正確的解決方案。以下是截圖工具可能無法正常工作的主要原因:對焦助手已開啟:這可以防止截圖工具開啟。應用程式損壞:如果截圖工具在啟動時崩潰,則可能已損壞。過時的圖形驅動程式:不相容的驅動程式可能會幹擾截圖工具。來自其他應用程式的干擾:其他正在運行的應用程式可能與截圖工具衝突。憑證已過期:升級過程中的錯誤可能會導致此issu簡單的解決方案這些適合大多數用戶,不需要任何特殊的技術知識。 1.更新視窗與Microsoft應用程式商店應用程

第1部分:初始故障排除步驟檢查蘋果的系統狀態:在深入研究複雜的解決方案之前,讓我們先從基礎知識開始。問題可能不在於您的設備;蘋果的伺服器可能會關閉。造訪Apple的系統狀態頁面,查看AppStore是否正常運作。如果有問題,您所能做的就是等待Apple修復它。檢查您的網路連接:確保您擁有穩定的網路連接,因為「無法連接到AppStore」問題有時可歸因於連接不良。嘗試在Wi-Fi和行動數據之間切換或重置網路設定(「常規」>「重置」>「重置網路設定」>設定)。更新您的iOS版本:

php提交表单通过后,弹出的对话框怎样在当前页弹出php提交表单通过后,弹出的对话框怎样在当前页弹出而不是在空白页弹出?想实现这样的效果:而不是空白页弹出:------解决方案--------------------如果你的验证用PHP在后端,那么就用Ajax;仅供参考:HTML code

這篇文章帶大家解讀vue原始碼,來介紹一下Vue2中為什麼可以使用 this 存取各種選項中的屬性,希望對大家有幫助!

同事因為this指向的問題卡住的bug,vue2的this指向問題,使用了箭頭函數,導致拿不到對應的props。當我跟他介紹的時候他竟然不知道,隨後也刻意的看了一下前端交流群,至今最起碼還有70%以上的前端程式設計師搞不明白,今天給大家分享一下this指向,如果啥都沒學會,請給我一個大嘴巴子。

CSS維度屬性詳解:height和width在前端開發中,CSS是一種強大的樣式定義語言。其中,height和width是兩個最基本的維度屬性,用來定義元素的高度和寬度。本文將對這兩個屬性進行詳細解析,並提供具體的程式碼範例。一、height屬性height屬性用來定義元素的高度。可以使用像素(pixel)、百分比(percentage)或

watch4pro和gt各自具有不使用的特點和適用場景,如果注重功能的全面性、高性能和時尚外觀,同時願意承擔較高的價格,那麼Watch 4 Pro可能更適合。如果對功能要求不高,更注重電池續航力和價格的合理性,那麼GT系列可能更適合。最終的選擇應根據個人需求、預算和喜好來決定,建議在購買前仔細考慮自己的需求,並參考各種產品的評測和比較,以做出更明智的選擇。
