處理圖片的軟體 PHP 處理圖片的類別實作程式碼
複製程式碼 程式碼如下:
/**
* 作者:yagas
* 信箱:yagas60@21cn.com
*/
class Image
{
/**類別保護變數*/
protected $th_width = 100;
protected $th_height = 50;
protected $quality = 85; //圖片品質
protected $transparent = 50; //浮水印透明度
protected $background = "255,255,255"; // 背景顏色
/**
* 產生縮圖檔
* @param $src 原圖檔
* @param $dst 目標檔
*/
public function thumb($src, $dst=null, $output=true)
{
$thumb = array($this->th_width,this $ ->th_height);
$this->scale($src, $thumb, $dst, $output);
}
/**
* 對圖片按百分比進行縮放處理
* @param string $src 原始圖檔
* @param string $dst 輸入的目標檔
* @param float/array $zoom 縮放比例,浮點類型時以百分比綻放,數組類型時按指定大小時行縮放
* @param boolean $output 是否產生檔案輸出
*/
public function scale($ src, $dst=null, $zoom=1, $output=true)
{
if(!file_exists($src)) die('File not exists.');
if(!$ zoom) die('the zoom undefine.');
$src_im = $this->IM($src);
$old_width = imagesx($src_im);
if(is_float($zoom) ) {
//以百分比縮放
$new_width = $old_width * $zoom;
}
elseif(is_array($zoom)) {
//明確的縮放尺寸
$new_width = $zoom[0];
}
//是否定義的縮放的高度
if(!isset($zoom[1])) {
//等比例縮放
$resize_im = $this->imageresize($src_im, $new_width);
}
else {
//非等比例縮放
$resize_im = $this->imageresize($src_imageresize($src_imageresize($src_imageresize($src_imageresize)($src_imageresize) , $new_width, $zoom[1]);
}
if(!$output) {
header("Content-type: image/jpeg");
imagejpeg($resize_im, null , $this->quality);
}
else {
$new_file = empty($dst)? $src:$dst;
imagejpeg($resize_im, $new_file, $this-> quality);
}
imagedestroy($im);
imagedestroy($nIm);
}
/**
* 將圖片裁切
* @param $src 原始檔案
* @param $dst 目標檔案
* @param $output 是否產生目標檔案
*/
public function capture($src, $dst=null, $output=true) {
if(!file_exists($src)) die('File not exists.');
$width = $this->th_width;
$height = $this->th_height;
$src_im = $this->IM($src);
$old_width = imagesx($src_im);
$old_height = imagesy($src_im);
$old_height = imagesy($src_im);
$capture = imagecreatetruecolor($width, $height);
$rgb = explode(",", $this->background);
$white = imagecolorallocate($capture, $rgb[0], $rgbb [1], $rgb[2]);
imagefill($capture, 0, 0, $white);
//當圖片大於縮圖時進行縮放
if($old_width > $width && $old_height>$height) {
$resize_im = $this->imageresize($src_im, $width);
//圖片比例不合規範時,重新計算比例進行裁切
if(imagesy ($resize_im) $proportion = $old_height/$this->th_height;
$resize_im = $this->imageresize($src_im, $old_width/$proportion);
}
$posx = 0;
$posy = 0;
}
else {
//圖片小於縮圖時將圖片居中顯示
$posx = ($width-$ old_width)/2;
$posy = ($height-$old_height)/2;
$resize_im = $src_im;
}
imagecopy($capture, $resize_im, $posx, $posy , 0, 0, imagesx($resize_im), imagesy($resize_im));
if(!$output) {
header("Content-type: image/jpeg");
imagejpeg($ capture, null, $this->quality);
}
else {
$new_file = empty($dst)? $src:$dst;
imagejpeg($capture, $new_file, $ this->quality);
}
imagedestroy($src_im);
@imagedestroy($resize_im);
imagedestroy($capture);
}
/**🎝🎝 >*/
public function mark($src, $mark, $dst='', $output=true)
{
$mark_info = getimagesize($mark);
$src_info = getimagesize ($src);
list($mw,$mh) = $mark_info;
list($sw,$sh) = $src_info;
$px = $sw - $mw;
$py = $sh - $mh;
$im = $this->IM($src);
$mim = $this->IM($mark);
imagecopymerge($im, $ mim, $px, $py, 0, 0, $mw, $mh, $this->transparent);
if($output){
$new_file = empty($dst)? $src:$ dst;
imagejpeg($im, $new_file, $this->quality);
}
else
{
header('Content-type: image/jpeg');
imagejpeg($im);
}
imagedestroy($im);
imagedestroy($mim);
}
/**
* 透過文件,取得不同的GD物件
*/
受保護函數IM($file)
{
if(!file_exists($file)) die('檔案不存在。');
$info = getimagesize($file);
switch($info['mime'])
{
case 'image/gif':
$mim = imagecreatefromgif($file);
case 'image/png':
$mim = imagecreatefrompng($file);
imagealphablending($mim, false);
imagesavealpha($mim, true); >休息;
case 'image/jpeg':
$mim = imagecreatefromjpeg($file);
休息;
預設值:
die('檔案格式錯誤。');
}
返回$mim;
}
/**
* 對圖片進行縮放的處理
* @param resource $src_im 圖像GD物件
* @param integer $width 圖片的寬度
* @param integer $height 圖片的高度,如果不設定高度,將對圖片進行等比例縮放
* @return resuorce $im 傳回一個GD物件
*/
受保護函數imageresize($src_im, $width, $height=null) {
$old_width = imagesx($src_im);
$old_height = imagesy($src_im);
$比例=$old_width/$old_height;
$new_width = $width; )?圓形($new_width / $proportion):$height;
//建立新的映像並填入預設的背景色
$im = imagecreatetruecolor($new_width, $new_height);
$rgbb =explode(",", $this->background);
$white = imagecolorallocate($im, $rgb[0], $rgb[1], $rgb[2]);
imagefill($ im, 0, 0, $white);
//對圖片進行縮放
imagecopyresized($im, $src_im, 0, 0, 0, 0, $new_width, $new_height, $old_width, $old_height) ;
回傳$im;
}
/**
* 類別變數賦值
*/
public function __set($key, $value)
{
$this->$key = $value;
}
/**
* 取得類別變數值
*/
public function __get($key)
{
return $this->$key;
}
}
? >
以上就介紹了處理圖片的軟體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)

在PHP中,應使用password_hash和password_verify函數實現安全的密碼哈希處理,不應使用MD5或SHA1。1)password_hash生成包含鹽值的哈希,增強安全性。 2)password_verify驗證密碼,通過比較哈希值確保安全。 3)MD5和SHA1易受攻擊且缺乏鹽值,不適合現代密碼安全。

PHP和Python各有優勢,選擇依據項目需求。 1.PHP適合web開發,尤其快速開發和維護網站。 2.Python適用於數據科學、機器學習和人工智能,語法簡潔,適合初學者。

PHP在電子商務、內容管理系統和API開發中廣泛應用。 1)電子商務:用於購物車功能和支付處理。 2)內容管理系統:用於動態內容生成和用戶管理。 3)API開發:用於RESTfulAPI開發和API安全性。通過性能優化和最佳實踐,PHP應用的效率和可維護性得以提升。

PHP是一種廣泛應用於服務器端的腳本語言,特別適合web開發。 1.PHP可以嵌入HTML,處理HTTP請求和響應,支持多種數據庫。 2.PHP用於生成動態網頁內容,處理表單數據,訪問數據庫等,具有強大的社區支持和開源資源。 3.PHP是解釋型語言,執行過程包括詞法分析、語法分析、編譯和執行。 4.PHP可以與MySQL結合用於用戶註冊系統等高級應用。 5.調試PHP時,可使用error_reporting()和var_dump()等函數。 6.優化PHP代碼可通過緩存機制、優化數據庫查詢和使用內置函數。 7

PHP類型提示提升代碼質量和可讀性。 1)標量類型提示:自PHP7.0起,允許在函數參數中指定基本數據類型,如int、float等。 2)返回類型提示:確保函數返回值類型的一致性。 3)聯合類型提示:自PHP8.0起,允許在函數參數或返回值中指定多個類型。 4)可空類型提示:允許包含null值,處理可能返回空值的函數。

PHP仍然具有活力,其在現代編程領域中依然佔據重要地位。 1)PHP的簡單易學和強大社區支持使其在Web開發中廣泛應用;2)其靈活性和穩定性使其在處理Web表單、數據庫操作和文件處理等方面表現出色;3)PHP不斷進化和優化,適用於初學者和經驗豐富的開發者。

PHP和Python各有優劣,選擇取決於項目需求和個人偏好。 1.PHP適合快速開發和維護大型Web應用。 2.Python在數據科學和機器學習領域佔據主導地位。

PHP適合web開發,特別是在快速開發和處理動態內容方面表現出色,但不擅長數據科學和企業級應用。與Python相比,PHP在web開發中更具優勢,但在數據科學領域不如Python;與Java相比,PHP在企業級應用中表現較差,但在web開發中更靈活;與JavaScript相比,PHP在後端開發中更簡潔,但在前端開發中不如JavaScript。
