2012-01-11 7 views
2

私は画像のクロップ&サイズ変更機能を使用していますが、透明な背景を持つpngファイルのみをトリミング/サイズ変更できるようにする必要があります。PNG画像に透明な背景があるかどうかを確認することはできますか?

PNG画像に透明な背景/ピクセルがあるかどうかを確認することはできますか?

私はPHPとGDライブラリを使用しています。

編集:私はGDライブラリを使用してPHPでこれを行う方法を理解しました。それはどのようにきれいに見えますか! :)

<?php 

$im = imagecreatefrompng("php.png"); 
$rgba = imagecolorat($im,1,1); 
$alpha = ($rgba & 0x7F000000) >> 24; 

var_dump($alpha); 
?> 

少なくとも1つの画素= $アルファ= 127を探しているすべての画像画素をチェックするためにX/Y coordenatesの配列を実行する方法任意のアイデア?

+0

徹底的にチェックすることで、答えを参照したいと思う特定のPNGフレームワークまたは言語がありますか? – Tommy

+0

ピクセル単位で確認するには処理時間がかかりますか?私はそれを試してみます。 – user1143241

+0

それはイメージのサイズに依存します...一般に大サイズの多くのファイルを処理した場合、それは処理時間が長くなりすぎます... –

答えて

1

確かに、すべてのピクセルを調べて、255のアルファがあるかどうかを確認することができます。どの言語とライブラリを使用していますか?

+0

私はGDとPHP/jQueryを使用しています。任意のアイデアをどのように行うには? – user1143241

+0

私は恐れていません。私はあなたがJavaとPythonでやろうとしていることをやったことがありますが、多くのPHPは分かりません。それでも、私は画像ライブラリを検索し、彼らが提供するものを見るでしょう。どちらの関数にもあなたに伝える関数があるか、または次の擬似コードで把握することができます:ピクセル32ビットですか?はい==おそらく透明です。 (8ビットが24ビットであるか24ビットであるかを調べる)。可能であれば透明で、画像のデータを取得してループし、各ピクセルが透明かどうかを確認します。 – vextorspace

+0

私は知っている、私はPHPのsavyも、ちょうど学びません。私は何も見つけることができません、私はGDライブラリは私の目的のために何も持っていないと思う、私はアルファまたは透明のためのいくつかの関数を見つけたが、私のために働くものは何もない。たぶん私は他の言語で全体をやろうとするべきでしょうか? :(私はimagecoloratで試してみます、多分私はその機能で何かをすることができます。 – user1143241

関連する問題