本帖最后由 lisong 于 2019-9-13 03:15 编辑
获取JPG文件的像素点的颜色代码,为什么会与文件本身颜色代码不一样?
为什么获取PNG文件的颜色代码就是正常的?
[Asm] 纯文本查看 复制代码 public void test() throws Exception {
// String filepath = "E:\\图片\\PNG.PNG";
String filepath = "E:\\图片\\JPG.jpg";
BufferedImage im = ImageIO.read(new File(filepath));
int[] px = new int[im.getWidth() * im.getHeight()];
PixelGrabber pg = new PixelGrabber(im, im.getMinX(), im.getMinY(), im.getWidth(), im.getHeight(), px, 0,
im.getWidth());
pg.grabPixels();
List<Integer> li = new ArrayList<Integer>();
for (int p : px) {
if (li.indexOf(p) == -1) {
li.add(p);
}
}
for (int p : li) {
// 输出颜色代码
System.out.println(p);
}
System.out.format("一共有 %s 种不同的颜色", li.size());
}
这两张图片只有两种颜色
为什么 获取 jpg 文件 像素点中的颜色代码时 颜色代码中会出现很多种 不应该只有两种吗
获取 PNG 文件时就正常 只有两种颜色代码
jpg文件
png文件
|