2010-12-12 39 views
1

私はGDライブラリを使ってphpでオーバーレイを行い、イメージを作成すると常に黒い背景になりますが、すべてのイメージが正しくオーバーレイされます。助けてもらえますか?イメージオーバーレイ(PHP);黒い背景?

<?php 

    $images = array($_GET['color'], $_GET['face'], $_GET['hat']); 


    $img = imagecreatetruecolor(58, 75); 

    imagealphablending($img, true); 
    imagesavealpha($img, true); 

    imagecolorallocate($img, 255, 205, 255); 
    imagecolorallocate($img, 255, 255, 255); 
    imagecolortransparent($img, $white); 

imagefilledrectangle($img, 0, 0, $imgWidth, $imgHeight, $white); 
    foreach($images as $fn) { 

     $cur = imagecreatefrompng($fn); 
     imagealphablending($cur, true); 
     imagesavealpha($cur, true); 


     imagecopy($img, $cur, 0, 0, 0, 0, 58, 75); 


     imagedestroy($cur); 
    } 


    header('Content-Type: image/png'); 
    imagepng($img); 

?> 

答えて

0
// Create an image 

$img = imagecreatetruecolor($imgWidth, $imgHeight); 

$white = imagecolorallocate($img, 255, 255, 255); 

// Make the background white 

imagefilledrectangle($img, 0, 0, $imgWidth, $imgHeight, $white); 

...助けることができます。

+0

投稿のスクリプトを私の最新のスクリプトに編集しました。まだ黒い。 – Seth

+0

AH!とった!ありがとうございました。 – Seth

0

これは一般的な問題です。回答はすでにstack overflowで利用できます。その答えは問題を完全に解決します。

私はあなたがもっともっと強力な(残念なことに文書化されていない)imagickライブラリを使用することで、あなたの人生を楽にすることができると示唆しています。最も基本的な画像操作。それはより速く、より簡単です(もう一度、ドキュメントを通過すると)、より強力です。

+0

私は3日間検索していて、何も動作していないようです。 – Seth

+0

@Seth:El Yoboリンクの議論で述べたように、最初に割り当てられた色を透明に使うことができないので、白を割り当てる前にダミーの色を割り当てる必要があります。また、定義する前に '$ white'をコード内で使用します。 – nico

+0

そうですね? (上記を参照) – Seth

関連する問題