Кажется, вы ищете код ниже:
for (int x = 0; x < img.height; x++) { // iterate over height
for (int y = 0; y < img.width; y++) { // iterate over width
int i = x + y * width;
if (img.pixels[i] == color(0, 0, 0)) { // determine if zero
Serial.write('1'); // send non zero char
} else {
Serial.write('0'); // send zero char
}
}
Serial.write("\n\r");
}
Если вы хотите сгруппировать выходные данные в единицах размером img.width
, вы можете сделать это:
for (int x = 0; x < img.height; x++) { // iterate over height
String s;
for (int y = 0; y < img.width; y++) { // iterate over width
int i = x + y * width;
if (img.pixels[i] == color(0, 0, 0)) { // determine if zero
s += '1'; // append a non zero char to string s
} else {
s += '0'; // append a zero char to string s
}
}
Serial.println(s);
}
Пожалуйста, помните:
Serial.write
выводит необработанные двоичные значения.
Serial.print
вывод символов (символов).
Serial.println
выводит символ (ы) , а добавляет символ новой строки к выводу.
У меня есть серьезные сомнения относительно этого расчета int i = x+y*width;
, поскольку ваши данные, вероятно, структурированы как:
vertical data: 0 1 2
horizontal data: [row 0][row 1][row 2]
Вместо:
horizontal data: 0 1 2
vertical data: [column 0][column 1][column 2]