2012-11-08 2 views
0

난 내가 바이트 []로 변환하고 문자열을,이 후 나는 다시 이미지를 가지고 그것을 코드를하지만 문제는 이미지텍스트 파일

   BufferedReader reader2 = new BufferedReader(new FileReader("e:\\imageinString.txt")); 
    String buffer, lined = ""; 

    while ((buffer = reader2.readLine()) != null) { 
     lined = lined + buffer; 
    } 

    byte[] byteArray = lined.getBytes("UTF-16"); 

    InputStream in = new ByteArrayInputStream(byteArray); 
    BufferedImage bImageFromConvert = ImageIO.read(in); 

    ImageIO.write(bImageFromConvert, "bmp", new File("e:\\ppp.bmp")); 
    reader2.close(); 
에 다시 생성되지 않는 것입니다

는이 오류를 얻고 있지만, 이것은 당신을 도울 것입니다 나는 콘솔

 Exception in thread "main" java.lang.IllegalArgumentException: image == null! 
at javax.imageio.ImageTypeSpecifier.createFromRenderedImage(ImageTypeSpecifier.java:925) 
at javax.imageio.ImageIO.getWriter(ImageIO.java:1591) 
at javax.imageio.ImageIO.write(ImageIO.java:1520) 
at imagereading.Imagereading.main(Imagereading.java:47) 
+2

1)'String' 바이트를 이미지에 쓸 수는 없습니다. 'BufferedImage'를 생성하고 이미지에서'Graphics' 객체를 가져 와서 텍스트를 작성한 다음 이미지를 저장해야합니다. 2) 왜, 왜, 왜 *** *** 세상에서 *** 사람들은 완벽하게 좋은 텍스트를 이미지로 바꾸고 싶습니까? –

+0

String을 byte로 변환하더라도 바이트 내용은 Image가 아닌 String입니다. 그것만이 형태를 바꿉니다. – Mawia

답변

3

에 얻고있다.

BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_3BYTE_BGR); 
Graphics2D g2 = image.createGraphics(); 
g2.drawString(s, x, y); 
... 
g2.dispose(); 
ImageIO.write(image, "jpg", file); 

또는 png로 내보내기를 원한다면 투명성을 지원하는 이미지를 가질 수 있습니다.

BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_4BYTE_ABGR); 
+0

PNG가 텍스트 이미지에 더 좋을 것이라고 생각합니다. 비교를 위해 [이 예제] (http://stackoverflow.com/questions/5995798/java-text-on-image/5998015#5998015)를 참조하십시오. –

+0

제안 해 주셔서 감사합니다. 나는 대답을 업데이트했다. –

+0

@ Dan 도와주세요. 내가 문자열을 이미지로 변환하기 위해 텍스트 파일에서 가져온 문자열을 어디로 전달해야하는지 이해할 수 없습니다. – Xara