2012-01-11 1 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++) { 

} 

I 투명 화소 이미지의 모든 픽셀을 확인 하려는데 다음 오류 메시지가 표시됨 :이미지 픽셀에 대해이 루프에서 내가 뭘 잘못하고 있니?

공지 : imagecolorat() function.imagecolorat] 1920,1가 벗어나을 C의 범위 : WWW를 \의 index.php를 \ 라인 (18)

+0

외모가 잘 보인다. 사람들이 신속하게 코드를보고 이해할 수 있다면 훨씬 더 많은 답변을 얻을 수 있습니다. – jprofitt

답변

5

의 경계는 0에서 시작하고, 따라서 각 방향 − 1 높이 − 1로 연장된다. 따라서 은 < $imagew이어야합니다. 마찬가지로 <= $imageh에 대해서도 마찬가지입니다. (한 낮)

너비와 높이가 단지 픽셀의 많은 행과 열이있는 방법을 알려

, 하지 최대 행 또는 열 인덱스.

는 두 개의 중첩 루프를 사용하여 전체 이미지를 걸어 :

당신은 메이크업에 코드를 삽입 할 때 여기에 게시에 대한 몇 가지 조언이 있는지를 미리보기를 살펴보고 그 경우를 볼 수있는 것처럼
for ($y = 0; $y < $imageh; $y++) { 
    for ($x = 0; $x < $imagew; $x++) { 
    // do whatever you want with them in here. 
    } 
} 
+0

환상적! 불충분 한 질문에 대한 미안 해요, 나는 PHP의 3 일있다. 이미지의 모든 픽셀을 검사하기 위해 $ x와 $ y의 조합을 어떻게 조합 할 수 있습니까? 값을 병합하려고하는데 잘못하고 있습니다. – user1143241

+0

편집을 참조하십시오. 그러나 일반적으로 다른 문제에 대해 다른 질문을하십시오. – Joey

+0

당신은 생명의 은인 동료입니다! 정말 고맙습니다! 배우는 것이 좋다. – user1143241

관련 문제