图像解码器的处理代码 returns þ
Processing code for image decoder returns þ
我正在尝试为处理中的图像制作解码器,但是 returns þ 不管我输入什么。非常感谢您的帮助。
void setup() {
//size(255, 255);
colorMode(HSB);
String result = decode();
println(result);
saveStrings("output.txt", new String[]{result});
}
String decode() {
PImage img = loadImage("code.png");
//image(img, 0, 0);
img.loadPixels();
String decoded = "";
int[] chars = new int[255 * 255];
for (int i = 0; i < 255; i++) {
for (int j = 0; j < 255; j++) {
color col = img.pixels[i * 255 + j];//get(i, j);
if (hue(col) == 0 && saturation(col) == 0) {
chars[floor(hue(col) * 255 + saturation(col))] = j;
println((char) j);
}
}
}
decoded = new String(chars, 0, chars.length);
String[] list = decoded.split("\u0000");
StringBuilder builder = new StringBuilder();
for (String string : list) {
builder.append(string);
}
decoded = builder.toString();
return decoded;
}
主要问题可能出现在 if (hue(col) == 0 && saturation(col) == 0) {
下一行 总是 hue(col)
和 saturation(col)
为 0。这意味着你总是在执行 chars[0] = j;
,而你的最终结果只有一个字符(你描述的 þ)。
我正在尝试为处理中的图像制作解码器,但是 returns þ 不管我输入什么。非常感谢您的帮助。
void setup() {
//size(255, 255);
colorMode(HSB);
String result = decode();
println(result);
saveStrings("output.txt", new String[]{result});
}
String decode() {
PImage img = loadImage("code.png");
//image(img, 0, 0);
img.loadPixels();
String decoded = "";
int[] chars = new int[255 * 255];
for (int i = 0; i < 255; i++) {
for (int j = 0; j < 255; j++) {
color col = img.pixels[i * 255 + j];//get(i, j);
if (hue(col) == 0 && saturation(col) == 0) {
chars[floor(hue(col) * 255 + saturation(col))] = j;
println((char) j);
}
}
}
decoded = new String(chars, 0, chars.length);
String[] list = decoded.split("\u0000");
StringBuilder builder = new StringBuilder();
for (String string : list) {
builder.append(string);
}
decoded = builder.toString();
return decoded;
}
主要问题可能出现在 if (hue(col) == 0 && saturation(col) == 0) {
下一行 总是 hue(col)
和 saturation(col)
为 0。这意味着你总是在执行 chars[0] = j;
,而你的最终结果只有一个字符(你描述的 þ)。