最近在搞JAVA图片,遇到个很郁闷的问题,当读取图片文件时,用ImageIO.read(new File(imagePath)),结果一部分扫描的JPG文件读入后,都变黑了,就像下面的图那样
原图片 尺寸:2481*3509  大小:1.75M但是我自己弄了几张 更大的图,都没有这个问题,不知道应该如何解决?是不是扫描出来的图片格式问题?希望有高手来指点一下 谢谢!

解决方案 »

  1.   

    是不是扫描出来的图片格式问题? 
    jpg格式应该没问题
      

  2.   

    你确定原图片是好的,用java读完就变黑了么?
    没这个道理啊
      

  3.   

    import java.awt.Graphics2D;
    import java.awt.geom.AffineTransform;
    import java.awt.image.BufferedImage;
    import java.io.*;
    import javax.imageio.ImageIO;
     
    public class LoadAndSave {
        public static void main(String[] args) throws IOException {
            String path = "images/cougar.jpg";
            BufferedImage image = ImageIO.read(new File(path));
            int w = image.getWidth();
            int h = image.getHeight();
            BufferedImage toStore = new BufferedImage(h, w, image.getType());
            Graphics2D g2 = toStore.createGraphics();
            double x = (h - w)/2.0;
            double y = (w - h)/2.0;
            AffineTransform at = AffineTransform.getTranslateInstance(x, y);
            at.rotate(Math.toRadians(90), w/2.0, h/2.0);
            g2.drawRenderedImage(image, at);
            g2.dispose();
            ImageIO.write(toStore, "BMP", new File("loadAndSave.bmp"));
        }
    }
      

  4.   

    我把原图片用WINDOWS画图工具打开,可以正常显示,然后另存为GIF格式,用程序读入后就能显示正常的颜色。但是如果另存为JPG格式,程序读入后还是黑的然后把那张GIF的另存为JPG,就可以正常显示...我估计会不会是扫描件的JPG格式图片 是经过特别压缩的,然后JAVA去读的时候,像素点的颜色都和空图片时的黑色相加,导致变黑?
      

  5.   


    我也正想告诉下lz呢
    有事jpg格式的图片不是那么标准!!
    所以读取会出错!!
    试试吧!!