valが256以上の時、前者ではpOutImg[i*ImgWidth+j]が255になりますが、後者ではvalの値がそのまま代入されます。
何故なら、前者の場合、一旦
pOutImg[i*ImgWidth+j] = val;
でvalの値が代入された後
if(val > 255) {...}
でpOutImg[i*ImgWidth+j]が256以上の場合に255に修正されますが、
後者の場合
if(val > 255){...}
でpOutImg[i*ImgWidth+j]に255が代入された後
if(val < 0){
...
}else{
pOutImg[i*ImgWidth+j] = val;
}
のelse以下が実行されて、もともと255が入っていたpOutImg[i*ImgWidth+j]にvalで上書きするためです。
1拍手 |
2010-07-07 22:43:57