2012-01-11 15 views
1
<?php 

$img = imagecreatefrompng("cuack.png"); 

$imagew = imagesx($img); 
$imageh = imagesy($img); 

$width = array(); 
$heigth = array();   
$x = 0; 
$y = 0; 

for ($x = 0; $x <= $imagew; $x++) { 

    $rgba = imagecolorat($img,$x,1); 
    $alpha = ($rgba & 0x7F000000) >> 24; 

    var_dump($alpha); 
} 

for ($x = 0; $x <= $imageh; $x++) { 

} 

私は透明なピクセルのための画像のすべてのピクセルを確認しようとしているが、私は、次のエラーを受信して​​いる:イメージピクセルのこのループで何が間違っていますか?

注意:imagecolorat()[function.imagecolorat]:1920,1が外でありますCにおける境界:ライン上のWWW \のindex.phpを18

+0

をよくフォーマットされています。人々がすぐにあなたのコードを見て理解できるならば、答えを得る可能性は非常に高いです。 – jprofitt

答えて

5

\境界は0から始まり、従って、各方向に − 1及び − 1まで延びています。したがって、<= $imagew< $imagewである必要があります。 <= $imagehの場合も同様です。 (低い方である)

幅と高さがちょうど画素の行数と列があるかを教えてくれ

ない最大行または列インデックス

ちょうど2つのネストされたループを使用し、画像全体を歩いて:あなたがメイクで自分のコードを置くとき必ずプレビューを見て、それかどうかを確認し、ただ、ここに投稿するためのいくつかのアドバイスとして

for ($y = 0; $y < $imageh; $y++) { 
    for ($x = 0; $x < $imagew; $x++) { 
    // do whatever you want with them in here. 
    } 
} 
+0

素晴らしい!不精な質問に申し訳ありません、私は3日間のPHPを持っています。イメージ内のすべてのピクセルをチェックするために、$ xと$ yの組合せを組み合わせる方法はありますか?値をマージしようとしていますが、間違っています。 – user1143241

+0

編集を参照してください。しかし、通常、さまざまな問題について異なる質問をします。 – Joey

+0

あなたは命の恩人です!どうもありがとうございます!学ぶことは良いことです。 – user1143241

関連する問題