【发布时间】:2014-02-07 16:56:06
【问题描述】:
唯一的区别是有两个不同的作物位置。 问题是为什么我会收到这个错误??
方法调用
CropRealOriginalImage1 orderName = new CropRealOriginalImage1();
FourAreaCropAgain1 orderNameFirst=new FourAreaCropAgain1();
orderNameFirst.orderNameFirst();
Decode decode= new Decode();
decode.inputImage("C:/TEMP/Image/Embed Image/Four Area/OrderFirst.png");
if(decode.s.equals("")){
System.out.println("OderFirst=null");
}else{
//put b into txt file
System.out.println("decode.s" +decode.s);
}
工作:
public void orderNameFirst(){
ImageIcon icon = new ImageIcon("C:/TEMP/Image/Embed Image/Really Original.png");
image = icon.getImage();
image = createImage(new FilteredImageSource(image.getSource(),
new CropImageFilter(icon.getIconWidth()-290, 0, 10, 33)));
//new CropImageFilter(icon.getIconWidth()/2, icon.getIconHeight()/2, icon.getIconWidth()/2, icon.getIconHeight()/2)));
BufferedImage bufferedImage = new BufferedImage(icon.getIconWidth(),
icon.getIconHeight(), BufferedImage.TYPE_INT_RGB);
Graphics graphics = bufferedImage.getGraphics();
graphics.drawImage(icon.getImage(), 0, 0, null);
Graphics2D g = bufferedImage.createGraphics();
g.setColor(Color.WHITE);
g.fillRect(icon.getIconWidth()-290, 0, 10, 33);
}
不工作
public void orderNameFirst(){
ImageIcon icon = new ImageIcon("C:/TEMP/Image/Embed Image/Really Original.png");
image = icon.getImage();
image = createImage(new FilteredImageSource(image.getSource(),
new CropImageFilter(3*icon.getIconWidth()/8, 0, icon.getIconWidth()/8, icon.getIconHeight()/2)));
//new CropImageFilter(icon.getIconWidth()/2, icon.getIconHeight()/2, icon.getIconWidth()/2, icon.getIconHeight()/2)));
BufferedImage bufferedImage = new BufferedImage(icon.getIconWidth(),
icon.getIconHeight(), BufferedImage.TYPE_INT_RGB);
Graphics graphics = bufferedImage.getGraphics();
graphics.drawImage(icon.getImage(), 0, 0, null);
Graphics2D g = bufferedImage.createGraphics();
g.setColor(Color.WHITE);
g.fillRect(3*icon.getIconWidth()/8, 0, icon.getIconWidth()/8, icon.getIconHeight()/2);
}
错误: 解码整数长度:2147483647 线程“线程”java.lang.OutOfMemoryError 中的异常:请求的数组大小超出 VM 限制
【问题讨论】:
-
你忘了问问题
-
请求的数组大小超过了 VM 限制 -- 对我来说似乎很清楚。
-
(除了实际提出问题外,您还应该将异常堆栈跟踪复制到您的问题中,并确定代码中与异常对应的行。)
-
我会尝试更新问题。谢谢你告诉我。
-
@JarekHuang:除了堆栈跟踪,发布图像和图标尺寸。 :-)
标签: java bufferedimage graphics2d imageicon