2013-05-17 5 views
0

imageIcon을 통해 문자열 데이터를 Image로 변환하는 동안 높이와 너비가 -1이됩니다. 무엇이 문제 일 수 있습니까? imageIcon을 통해 문자열 데이터를 Image로 변환하는 동안 java2EE에서 height와 width가 -1이됩니다.

String image = request.getParameter("image"); 

if (image != null && image.length() > 0) 

    { 
     byte[] decoded = Base64.decodeBase64(image.getBytes()); 

     ImageIcon img = new ImageIcon(decoded); 

     if (img.getIconWidth() > -1 && img.getIconHeight() > -1) { 
      image1 = img.getImage(); 
     } 
    } 

이미지 아이콘 높이 & 폭

은 점점 -1

+0

어쩌면'image.getBytes()'요구 인코딩. –

+0

어떻게 할 수 있습니까? –

+0

이미지의 경로가 맞습니까? – Simon

답변

1

이 작동합니다 :

File b64 = new File("loop.png.b64"); 
FileInputStream fis = new FileInputStream(b64); 
byte[] bytes = IOUtils.toByteArray(fis); 
byte[] decoded = Base64.decodeBase64(bytes); 
ImageIcon img = new ImageIcon(decoded); 

if (img.getIconWidth() > -1 && img.getIconHeight() > -1) { 
    System.out.println("OK"); 
} 

성령 강림절 loop.png.b64 존재 :

iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABmJLR0QAAAAAAAD5Q7t/AAAACXBI 
WXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH3AgBFxQTkp15LgAAAbNJREFUOMutUz1LIwEUnDhh/ai2 
VIOyTRoRtVERAm4iWggKV9kGrbTI+lGIlfgL1vwC8RdsZSVi5HJypwleciGHrJL1W2y0iai4PCvD 
mg8Vcdo3M8x7zAO+AzcLCz02KYek5EnJkZIh5a+q3r5yDgYGrOzUlF7T5Hx83Cw3+D80tAYA+enp 
nt+k7JKyPzJienV17yVTgsF1APD5/Xd1LS0OADxsbc3+GR42364Qi+nlK+Ta2gpeTs4w1LSur/0k 
JUFKKhrVSwmeMhkDABgIOA2jo6sA0NDbu+416IzH75Surjk2NzsA8JjPG6XhMSk2KZeTk1EAsEMh 
y5mf16qtlZ6YiCZI2SYFAPzeoa+pyQGAYDL5A8lk1bu8cj51xM/gjYHc32sfCapyzgcHLZuUo/b2 
wuXSklpL/C8WU3cDgUKClF99fVYpgdLdHQcA9+JCe0ilzLPFxQqTnGGoT9ms6V5fawBQ39ERBwCf 
t4nFjY1ZF4CvtdVRwuEVaWx0XBE8F4tacWdn+fnqSnMBKJHIav/m5lxFxJOxMdNb5QNS0qTskVKr 
yhU4nZnR7VDIKjf48Jm+ihfxk8RykW8L+wAAAABJRU5ErkJggg==