查看(已解码的)png文件中的像素以确定哪一个是最暗的哪个是最轻的,但是无论出于何种原因,当我通过黑白过滤时,不应该太困难克里斯哈德菲尔德的形象,我的功能告诉我最亮的像素是值74,当有明显许多珍珠白像素时是深灰色,我的方法应该吐出255.我有一个相反的c方法以及最黑暗的值和我得到0如预期,但我的代码可能出错。答案将不胜感激。在测试中,我设置最亮到255,因此任何像素都不可能比那些要轻,而且我的代码仍在吐出74.这笔交易是什么?
uint8_t min( const uint8_t array[], unsigned int cols, unsigned int rows ) {
uint8_t darkest = 255;
for(int pixel = 0; pixel < (cols * rows); pixel++){
if(array[pixel] < darkest){
darkest = array[pixel]; }}
return darkest;
}
/* Return the lightest color that appears in the array; i.e. the
largest value
*/
uint8_t max( const uint8_t array[], unsigned int cols, unsigned int rows ) {
int8_t lightest = 0;
for(int pixel = 0; pixel < (cols * rows); pixel++){
if(array[pixel] > lightest){
lightest = array[pixel]; }}
return lightest;
}
答案 0 :(得分:0)
最轻的指定值不正确。它应该是uint8_t,这种数据类型的无符号版本。