유일한 차이점은 두 개의 다른 자르기 위치입니다. 질문은 왜 내가이 오류가 있습니까 ??스레드 "스레드"의 예외 java.lang.OutOfMemoryError : 요청 된 배열 크기가 VM 제한을 초과합니다
메서드 호출
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);
}
오류 작동하지 : 디코드 integerLength은 : 2147483647 스레드 "스레드"java.lang.OutOfMemoryError와의 예외 : 이것은 당신이 원하는 대답하지 않을 수 있습니다, 그러나 이것은 당신이 무엇을 요구입니다 : 요청 된 배열의 크기는 VM 제한을
질문을 잊어 버렸습니다. – Durandal
요청한 배열 크기가 VM 한도를 초과합니다. –
(실제로 질문하는 것 외에 예외 스택 추적을 질문에 복사하고 예외에 해당하는 코드의 줄을 식별해야합니다.) –