首页 > java 图片处理之后颜色变暗,像素丢失?

java 图片处理之后颜色变暗,像素丢失?

我用java 将图片压缩之后图片颜色变暗了,想请问下是怎么回事,是图片像素丢失了? 我用java 处理图片的开源工具(imgscarl)和 java 原生的Image 处理方法都会出现同样的问题

 public final static void scale(String srcImageFile, String result,
            int scale, boolean flag) {
        try {
            BufferedImage src = ImageIO.read(new File(srcImageFile)); // 读入文件
            int width = src.getWidth(); // 得到源图宽
            int height = src.getHeight(); // 得到源图长
            if (flag) {// 放大
                width = width * scale;
                height = height * scale;
            } else {// 缩小
                width = width / scale;
                height = height / scale;
            }
            Image image = src.getScaledInstance(width, height,
                    Image.SCALE_DEFAULT);
            BufferedImage tag = new BufferedImage(width, height,
                    BufferedImage.TYPE_INT_RGB);
            Graphics g = tag.getGraphics();
            g.drawImage(image, 0, 0, null); // 绘制缩小后的图
            g.dispose();
            ImageIO.write(tag, "JPEG", new File(result));// 输出到文件流
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

ImageIO.write(tag, "PNG", new File(result)); // 保存为png试试

【热门文章】
【热门文章】