java - 帮助将插件添加到 Java ImageWriter

标签 java javax.imageio jai pgm

我正在尝试将 BufferedImage 保存为 PNM 文件。我已经安装了 JAI (Java Advanced Imaging),并导入了 PNMWriter 插件。但是,我不知道如何将它添加到我的 ImageWriter 中以便它可以写入 .pnm。当我运行 ImageIO.getWriterFormatNames() 以获取可能的格式名称时,只有标准格式名称(.png、.bmp、.jpg ....)出现...做什么

最佳答案

我自己为我的软件实现了这个。它只有 30 行源代码,我不想为可以如此轻松解决的问题添加 Java Advanced Imaging。这是我的解决方案:

        public static void write(BufferedImage image, OutputStream stream) throws IOException
        {
                /*
                 * Write file header.
                 */
                int imageWidth = image.getWidth();
                int imageHeight = image.getHeight();
                stream.write('P');
                stream.write('6');
                stream.write('\n');
                stream.write(Integer.toString(imageWidth).getBytes());
                stream.write(' ');
                stream.write(Integer.toString(imageHeight).getBytes());
                stream.write('\n');
                stream.write(Integer.toString(255).getBytes());
                stream.write('\n');

                /*
                 * Write each row of pixels.
                 */
                for (int y = 0; y < imageHeight; y++)
                {
                        for (int x = 0; x < imageWidth; x++)
                        {
                                int pixel = image.getRGB(x, y);
                                int b = (pixel & 0xff);
                                int g = ((pixel >> 8) & 0xff);
                                int r = ((pixel >> 16) & 0xff);
                                stream.write(r);
                                stream.write(g);
                                stream.write(b);
                        }
                }
                stream.flush();
        }

关于java - 帮助将插件添加到 Java ImageWriter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6548568/

相关文章:

java - 如何从子类访问父类(super class)中的字段?

iphone - 避免图片解压阻塞主线程

java.lang.UnsatisfiedLinkError : no kdu_jni in java. 库.path

java - JAI TIFF 编解码器创建工件

java - 在 OSGi 中运行 JAI

Java Hibernate 删除对象

java - 无法将返回的 java.util.ArrayList 分配给 scala.collection.mutable.ArrayBuffer。为什么?

java - 将数据库中的 blob 图像显示到 jlabel 中

java - 当我们有访问器和修改器时,为什么要声明私有(private)字段?

java - 使用 ImageIO 将文件后缀映射到内容类型