【发布时间】:2014-05-17 13:02:00
【问题描述】:
我正在尝试从外部目录读取图像,为此我正在使用
bufferedImage image=ImageIO.read(new File(imagefile));
jlabel.seticon(new imageicon(image));
并获得颜色的剧烈变化。我尝试了许多其他方法,例如:
bufferedImage image=ImageIO.read(new File(imagefile));
bufferedImage img=new bufferedImage(image.getWidth(),image.getHeight(),bufferedImage.TYPE_INT_RGB);
我试过了:
img.setData(image.getData();
jlabel.seticon(new imageicon(image));
我试过了:
Iterator readers = ImageIO.getImageReadersByFormatName("JPEG");
ImageReader reader = null;
while(readers.hasNext()) {
reader = (ImageReader)readers.next();
if(reader.canReadRaster()) {
break;
}
}
ImageInputStream input = ImageIO.createImageInputStream(f);
reader.setInput(input);
Raster raster = reader.readRaster(0, null);
BufferedImage bi = new BufferedImage(raster.getWidth(), raster.getHeight(),
BufferedImage.TYPE_4BYTE_ABGR);
bi.getRaster().setRect(raster);
但结果还是一样 http://i.stack.imgur.com/jNVm0.jpg
这是一个问题的例子:
查看的最少代码是:
bufferedImage image=ImageIO.read(new File(imagefile));
jlabel.seticon(new imageicon(image));
lbitem.setIcon(im);
用于存储
File f = new File(s);
long size=f.length();
FileInputStream fis1=new FileInputStream(f);
FileOutputStream fos2=new FileOutputStream("src/image/"+tfpn.getText()+".jpg");
byte b[]=new byte[1000];
int r=0;
long count=0;
while(true)
{
r=fis1.read(b,0,1000);
fos2.write(b,0,1000);
count = count+r;
if(count==size)
break;
System.out.println(count);
}
颜色不好的原因是什么?
【问题讨论】:
-
我想知道您的问题是否是您使用了错误的颜色模型。我想你会想看看这两个 SO 问题的答案:1)Java CMYK to RGB with profile. Output is too dark 2)Problem reading JPEG image using ImageIO.read(File file)
-
你能提供我解决这个问题的代码吗
-
没有。您甚至没有表明您已经尝试过链接中的任何内容。请阅读链接,尝试他们的解决方案,看看它们是否适用。如果他们不这样做并且您仍然需要帮助,那么您将需要创建并发布您的minimal code example program 以供我们审查、测试并可能修复。您还需要发布您的图片,包括原始图片和无效图片。
-
见鬼,这甚至不是你的形象!你从here 借来的。请停止浪费我们的时间,并显示指向真实图像的链接并发布您的最小代码。
-
正如@HovercraftFullOfEels 所说1) 阅读他提供的链接并尝试它们; 2) 如果这不符合您的需求,请阅读气垫船也提供的this link,3) 执行该链接所说的操作并 4) 在那之后,我们将更有能力帮助你:) 祝你好运
标签: java image swing javax.imageio