1
导入图像时,遍历像素这样的:保存导入图像的色彩深度与</p> <pre class="lang-java prettyprint-override"><code>loadImage("...") </code></pre> <p>命令
img.loadPixels();
int w = img.width;
int h = img.height;
for (int y = 0; y < h; y++) {
for (int x = 0; x < w; x++) {
int loc = x + y*w;
float r = red(img.pixels[loc]);
float g = green(img.pixels[loc]);
float b = blue(img.pixels[loc]);
println(r + ", " + g + ", " + b);
}
}
RGB值似乎总是在0即使图像文件的深度为16位,每个通道的值也应该在0到65535之间。 是否可以保留正确的颜色深度?
你就不能用'65535/255'乘号? –
这是行不通的,因为即使数字r g和b存储为浮点数,它们基本上都是整数,因此相乘实际上并不会恢复原始深度。 –
'red()','green()'和'blue()'函数返回一个标准化的值。也许尝试直接访问像素[loc]的值,而不是通过颜色函数传递它? –