加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

有关向Java ImageWriter添加插件的帮助

发布时间:2020-12-15 02:26:36 所属栏目:Java 来源:网络整理
导读:我试图将Buffered Image保存为PNM文件.我已经安装了JAI( Java Advanced Imaging),并导入了PNMWriter插件.但是,我不知道如何将它添加到我的ImageWriter中,因此它可以用.pnm编写.当我运行ImageIO.getWriterFormatNames()来获取可能的格式名称时,只出现标准名称
我试图将Buffered Image保存为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();
        }

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读