抖动处理,需要先将位图转成黑白的再做处理
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];
}
}