2011-12-14 28 views
1

私はこのコードを使用して、その場で画像のサイズを変更し、そのコピーを作成しています。PHPイメージのサイズ変更黒の背景 - 色の変更

function ak_img_resize($target, $newcopy, $w, $h, $ext) { 
    list($w_orig, $h_orig) = getimagesize($target); 
    $scale_ratio = $w_orig/$h_orig; 
    if (($w/$h) > $scale_ratio) { 
      $w = $h * $scale_ratio; 
    } else { 
      $h = $w/$scale_ratio; 
    } 
    $img = ""; 
    $ext = strtolower($ext); 
    if ($ext == "gif"){ 
     $img = imagecreatefromgif($target); 
    } else if($ext =="png"){ 
     $img = imagecreatefrompng($target); 
    } else { 
     $img = imagecreatefromjpeg($target); 
    } 
    $tci = imagecreatetruecolor($w, $h); 
    // imagecopyresampled(dst_img, src_img, dst_x, dst_y, src_x, src_y, dst_w, dst_h, src_w, src_h) 
    imagecopyresampled($tci, $img, 0, 0, 0, 0, $w, $h, $w_orig, $h_orig); 
    imagejpeg($tci, $newcopy, 80); 
} 

は、しかし、私は好きではないのは、それがデフォルトに背景を提供します。どのように私はこれを変更することができますのような背景に

ここでは、次のとおりです。

enter image description here

答えて

2

あなたが$tciを初期化した後、あなたは白で画像を埋めるためにimagefill()imagecolorallocate()を使用することができます。

$white = imagecolorallocate($tci, 255, 255, 255); 
imagefill($tci, 0, 0, $white); 

注:場合にのみ動作しますソースイメージは透過ピクセルを使用します。

+0

私の友人は伝説です! – Frank

関連する問題