2012-03-24 7 views
1

私はここに新しいStackoverflowだ。PHP:画像の緑色の領域(背景)を透明にするにはどうすればいいですか?

PHPスクリプトを使用して画像の特定の色を透明にすることが可能なのであれば、私は非常に気に入るはずです。それがあれば、それをやり遂げる方法。私が持っているFrench Hotdog w/ green background

enter image description here

絶対にこのようなスクリプトは次のようにか全くわから見ないだろうか:

のは、これは背景色(緑)が完全に透明に持っているの画像であるとしましょうどこからでも始めることができます。 あなたは、望ましくないRGBカラーを設定し、画像内のすべてのピクセルを「スキャン」して、どのピクセルを透明にしなければならないかを判断する必要があると思います。しかし、それ以外の私は無知だ。

本当にここの誰かが私にこのことを助けてくれることを願っています。

+0

こんにちは@Ace、このサイトは、具体的なプログラミングに関する質問です。あなたは始める手がかりがないと書いています。その後、まず宿題を行い、少なくとも1つのヒントを見つけます。色(ヒント)。その後、コードを書いてから、ロードブロックのどこにヒットしたかを強調表示します。 – hakre

答えて

0

imagecolortransparent()がお手伝いします:

... 
$yourColor = imagecolorallocate($im, 0, 0, 0); 
imagecolortransparent($im, $yourColor); 
... 
+0

Narekさん、ありがとうございました。しかし、私は$ yourColorのために画像のピクセルをスキャンするためにいくつかの助けが必要になるだろうと思います。 – Ace

3

最初はPNG原因JPEGする必要がありませんサポートの透明性は、コードは次のようなものです:

<?php 
    $image = 'test.png'; 
    $im = imagecreatefrompng($image); 
    //if you exactly know the RGB color indexes 
    //$rgb = imagecolorexact($im, 0, 0, 0); 
    //or keep the rgb color by position so at top 0 left 0 
    $rgb = imagecolorat($im, 0, 0); 
    imagecolortransparent($im, $rgb); 
    header("Content-type: image/png"); 
    //display the image directly 
    imagepng($im); 
    // or save it 
    // imagepng($im, 'test-to-transparent.png'); 
    imagedestroy($im); 
?> 
+0

Brilliant aSeptik !! :)スクリプトのコメントに感謝します。本当に役に立ちました。色の濃淡、色相、彩度、明るさに関係なく、画像のすべての緑のピクセルを透明にする方法があれば、今考えています。これは、背景色を完全に「取り除く」唯一の方法と思われる。どのようにこれを行うことができるかについての考え? – Ace

関連する問題