2015-11-07 170 views
1

我想將1200x1200圖像轉換爲1200x600將方形圖像轉換爲矩形

但是,我不想丟失圖像比例,這就是爲什麼我想在左側和右側添加白色邊框並將圖像放在中間。

最終的圖像會像左右邊框和中間的方形圖像,然後我將它保存到我的項目中的文件夾和用戶。

這可能使用GD庫嗎?

回答

1

您可以編寫自己的數學函數在特定尺寸的畫布上顯示圖像。這裏是一個數學函數,我使用,

function resize_image($img,$maxwidth,$maxheight) { 
    //This function will return the specified dimension(width,height) 
    //dimension[0] - width 
    //dimension[1] - height 

    $dimension = array(); 
    $imginfo = getimagesize($img); 
    $imgwidth = $imginfo[0]; 
    $imgheight = $imginfo[1]; 
    if($imgwidth > $maxwidth){ 
     $ratio = $maxwidth/$imgwidth; 
     $newwidth = round($imgwidth*$ratio); 
     $newheight = round($imgheight*$ratio); 
     if($newheight > $maxheight){ 
      $ratio = $maxheight/$newheight; 
      $dimension[] = round($newwidth*$ratio); 
      $dimension[] = round($newheight*$ratio); 
      return $dimension; 
     }else{ 
      $dimension[] = $newwidth; 
      $dimension[] = $newheight; 
      return $dimension; 
     } 
    }elseif($imgheight > $maxheight){ 
     $ratio = $maxheight/$imgheight; 
     $newwidth = round($imgwidth*$ratio); 
     $newheight = round($imgheight*$ratio); 
     if($newwidth > $maxwidth){ 
      $ratio = $maxwidth/$newwidth; 
      $dimension[] = round($newwidth*$ratio); 
      $dimension[] = round($newheight*$ratio); 
      return $dimension; 
     }else{ 
      $dimension[] = $newwidth; 
      $dimension[] = $newheight; 
      return $dimension; 
     } 
    }else{ 
     $dimension[] = $imgwidth; 
     $dimension[] = $imgheight; 
     return $dimension; 
    } 
} 

假設你的圖像尺寸是爲1200x1200(高度:1200,寬度:1200)和你的畫布大小(你要顯示的圖像)是1200x600(高度:1200寬度:600),你可以調用這個resize_image功能這樣,

$dimension = resize_image("{$your_image_path}.jpg",600,1200); 
$width = $dimension[0]; 
$height = $dimension[1]; 

,並得到適當的尺寸後,顯示你的形象就是這樣,

<img src="your_image_path.jpg" alt="Image" height="<?php echo $height; ?>" width="<?php echo $width; ?>" />