关于java ImageIO读写文件的问题,为什么同一个写书出去在读进来就不一样了呢?
BufferedImageoutputImage=newBufferedImage(realWidth*8,realHeight*8,BufferedImage.TYPE...
BufferedImage outputImage = new BufferedImage(realWidth * 8, realHeight * 8, BufferedImage.TYPE_3BYTE_BGR);
for (int y = 0; y < realHeight * 8; y++)
for (int x = 0; x < realWidth* 8; x++) {
int rgb = ((rComponent_trans[y][x]&0xff)<<16) + ((gComponent_trans[y][x]&0xff) << 8) + (bComponent_trans[y][x]&0xff)+0xff000000;
outputImage.setRGB(x, y, rgb);
}
// 上面就是生成了一个图像,其余的不用管
//测试代码
System.out.println(Integer.toBinaryString(outputImage.getRGB(22, 22))); ※1
File outputfile = new File("output.jpg");
ImageIO.write(outputImage, "jpg", outputfile); //将文件写出去
//测试代码
File file2 = new File("output.jpg");
BufferedImage intput = ImageIO.read(file2); //将刚刚写出去的文件读进来
System.out.println(Integer.toBinaryString(output.getRGB(22, 22))); ※2
※1 和※2 两行输出不一样?! 为什么呢。。。。同样的一个文件写出去再读进来就不一样了呢?! 展开
for (int y = 0; y < realHeight * 8; y++)
for (int x = 0; x < realWidth* 8; x++) {
int rgb = ((rComponent_trans[y][x]&0xff)<<16) + ((gComponent_trans[y][x]&0xff) << 8) + (bComponent_trans[y][x]&0xff)+0xff000000;
outputImage.setRGB(x, y, rgb);
}
// 上面就是生成了一个图像,其余的不用管
//测试代码
System.out.println(Integer.toBinaryString(outputImage.getRGB(22, 22))); ※1
File outputfile = new File("output.jpg");
ImageIO.write(outputImage, "jpg", outputfile); //将文件写出去
//测试代码
File file2 = new File("output.jpg");
BufferedImage intput = ImageIO.read(file2); //将刚刚写出去的文件读进来
System.out.println(Integer.toBinaryString(output.getRGB(22, 22))); ※2
※1 和※2 两行输出不一样?! 为什么呢。。。。同样的一个文件写出去再读进来就不一样了呢?! 展开
1个回答
2015-11-17
展开全部
因为JPG是压缩过的。。。。。。。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询