抖动处理

抖动处理,需要先将位图转成黑白的再做处理

uint32_t *pixels =bitmapData;

intgray[width*height];

for(inti =0; i < height; i++) {

for(intj =0; j < width; j++) {

intgrey = pixels[width * i + j];

intred = ((grey &0x00FF0000) >>16);

gray[width * i + j] = red;

}

}

inte =0;

for(inti =0; i < height; i++) {

for(intj =0; j < width; j++) {

intg = gray[width * i + j];

if(g >=128) {

pixels[width * i + j] =0xffffffff;

e = g -255;

}else{

pixels[width * i + j] =0xff000000;

e = g -0;

}

if(j < width -1&& i < height -1) {

gray[width * i + j +1] +=3* e /8;// 右边像素处理

gray[width * (i +1) + j] +=3* e /8;// 下

gray[width * (i +1) + j +1] += e /4;// 右下

}elseif(j == width -1&& i < height -1) {// 靠右或靠下边的像素的情况

gray[width * (i +1) + j] +=3* e /8;// 下方像素处理

}elseif(j < width -1&& i == height -1) {

gray[width * (i) + j +1] += e /4;// 右边像素处理

}

}

}

for(inta=0; a

{

if(gray[a]>128)

{

[selfImageStrappendFormat:@"%d",1];

}

else

{

[selfImageStrappendFormat:@"%d",0];

}

}

你可能感兴趣的:(抖动处理)