相信專業,給你品質
專營建築物防水、抓漏、除壁癌、拆除工程
冷氣直接提供客戶給您,每天提供給您新客戶帶來新商機
不用再花高額的廣告費做些沒效果的廣告
J2H流行雜誌J2h論壇程式設計討論   
交友配對個人設定加入會員會員說明重新登入


[php] Resize Image

房東:王小姐
發表時間:2017-11-17
[檢舉]



在開發網頁中,圖片放大縮小或更改高度、寬度是常有的問題

除了用一些軟體可以處理之外,PHP原生的函式中對於這部份也可以處理


class ResizeImage {
var $image;
var $image_type_id;
function load($filename) {
//取得圖片資訊
$image_info = getimagesize($filename);
//取得圖片類型
$this -> image_type_id = $image_info[2];
//判斷圖片類型,並建立圖片物件
if( $this -> image_type_id == IMAGETYPE_JPEG ) {
$this -> image = imagecreatefromjpeg($filename);
}
elseif( $this -> image_type_id == IMAGETYPE_GIF ) {
$this -> image = imagecreatefromgif($filename);
}
elseif( $this -> image_type_id == IMAGETYPE_PNG )
{
$this -> image = imagecreatefrompng($filename);
}
}

function save($filename, $image_type_id = IMAGETYPE_JPEG) {
if( $image_type_id == IMAGETYPE_JPEG ) {
imagejpeg($this -> image,$filename,75);
}
elseif( $image_type_id == IMAGETYPE_GIF ) {
imagegif($this -> image,$filename);
}
elseif( $image_type_id == IMAGETYPE_PNG ) {
imagepng($this -> image,$filename);
}
//修改權限
chmod($filename,0755);
}

function getWidth() {
//取得寬度
return imagesx($this -> image);
}
function getHeight() {
//取得高度
return imagesy($this -> image);
}
function resizeToHeight($height) {
//高度縮放(寬度等比縮放)
$ratio = $height / $this -> getHeight();
$width = $this -> getWidth() * $ratio;
$this->resize($width,$height);
}

function resizeToWidth($width) {
//寬度縮放(高度等比縮放)
$ratio = $width / $this -> getWidth();
$height = $this -> getheight() * $ratio;
$this->resize($width,$height);
}

function scale($scale) {
//百分比縮放
$width = $this -> getWidth() * $scale/100;
$height = $this -> getheight() * $scale/100;
$this->resize($width,$height);
}

function resize($width,$height) {
//imagecreatetruecolor會產生特定長寬的黑色圖形,並建立圖片物件
$new_image = imagecreatetruecolor($width, $height);
//利用imagecopyresampled resize圖片
//imagecopyresampled(目地圖片,來源圖片,目地x座標,目地y座標,來源x座標,來源y座標,目地寬度,目地高度,來源寬度,來源高度)
imagecopyresampled($new_image, $this -> image, 0, 0, 0, 0, $width, $height, $this -> getWidth(), $this -> getHeight());
//將image變數指向新的圖片
$this -> image = $new_image;
}
}











範例:


$image = new ResizeImage();
$image -> load("johnson.jpg");
//縮放至120%
$image -> scale(120);
$image -> save('pic1.jpg');
//修改高度
$image->resizeToHeight(500);
$image->save('pic2.jpg');



  • J2H贊助網站            在此刊登廣告

    廣利不動產-新板特區指名度最高、值得您信賴的好房仲
    您的托付,廣利用心為您服務
    廣利不動產-板橋在地生根最實在--新板特區指名度最高、值得您信賴的好房仲
    完整房訊,房屋、店面熱門精選物件,廣利不動產 優質仲介,房屋租賃、買賣資訊透明,交易真安心!



  •  共 0 人回應

    回應主題
    ※注意 
    1. 抱歉,您的網頁未支援Cookie,此網頁將無法正常執行請檢查您電腦瀏覽器關於cookie的設定。設定方法說明
    2. 必須由首頁登入 J2H 流行雜誌