目前只實現了三個功能: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教學有興趣的朋友有所幫助。

tostartaphpsession,usesesses_start()attheScript'Sbeginning.1)placeitbeforeanyOutputtosetThesessionCookie.2)useSessionsforuserDatalikeloginstatusorshoppingcarts.3)regenerateSessiveIdStopreventFentfixationAttacks.s.4)考慮使用AttActAcks.s.s.4)

會話再生是指在用戶進行敏感操作時生成新會話ID並使舊ID失效,以防會話固定攻擊。實現步驟包括:1.檢測敏感操作,2.生成新會話ID,3.銷毀舊會話ID,4.更新用戶端會話信息。

PHP会话对应用性能有显著影响。优化方法包括:1.使用数据库存储会话数据,提升响应速度;2.减少会话数据使用,只存储必要信息;3.采用非阻塞会话处理器,提高并发能力;4.调整会话过期时间,平衡用户体验和服务器负担;5.使用持久会话,减少数据读写次数。

PHPsessionsareserver-side,whilecookiesareclient-side.1)Sessionsstoredataontheserver,aremoresecure,andhandlelargerdata.2)Cookiesstoredataontheclient,arelesssecure,andlimitedinsize.Usesessionsforsensitivedataandcookiesfornon-sensitive,client-sidedata.

phpIdentifiesauser'ssessionSessionSessionCookiesAndSessionId.1)whiwsession_start()被稱為,phpgeneratesainiquesesesessionIdStoredInacookInAcookInAcienamedInAcienamedphpsessIdontheuser'sbrowser'sbrowser.2)thisIdallowSphptpptpptpptpptpptpptpptoretoreteretrieetrieetrieetrieetrieetrieetreetrieetrieetrieetrieetremthafromtheserver。

PHP會話的安全可以通過以下措施實現:1.使用session_regenerate_id()在用戶登錄或重要操作時重新生成會話ID。 2.通過HTTPS協議加密傳輸會話ID。 3.使用session_save_path()指定安全目錄存儲會話數據,並正確設置權限。

phpsessionFilesArestoredIntheDirectorySpecifiedBysession.save_path,通常是/tmponunix-likesystemsorc:\ windows \ windows \ temponwindows.tocustomizethis:tocustomizEthis:1)useession_save_save_save_path_path()


熱AI工具

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

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

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

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

熱門文章

熱工具

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

MantisBT
Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

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

SublimeText3 Linux新版
SublimeText3 Linux最新版

SecLists
SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。