0

文字列があり、それをbytes []に変換してから、画像に戻すようにコーディングしていますが、問題は、画像に戻さないことです。

              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)
4

1 に答える 1

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);
于 2012-11-08T09:07:45.063 に答える