1

所以我的桌面上有这个 GIF 文件(它是一副 52 张扑克牌)。我一直在研究一个程序,将它分成每张卡的小 acm.graphics.GImages。但是,现在我想将这些 GImage 或像素数组写入一个文件,以便以后可以使用它们。我认为这就像编写 .txt 文件一样简单,但后来谷歌搜索了几次,我比以前更困惑了。

那么我该如何从像素数组或 GImage 中制作 .gif 文件(我有这两者的负载)?

4

3 回答 3

7

这些方面的东西应该可以解决问题(根据需要修改图像类型、尺寸和像素阵列):

BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);

WritableRaster raster = image.getRaster();
for ( i=0; i<width; i++ ) {
    for (  j=0; j<height; j++ ) {
        int[] colorArray = getColorForPixel(pixels[i][j]);
        raster.setPixel(i, j, colorArray);
    }
}

ImageIO.write(image, "gif", new File("CardImage"));

'getColorForPixel' 需要返回一个表示该像素颜色的数组。在这种情况下,使用 RGB,colorArray 将具有三个整数 [red][green][blue]。

相关的 javadoc:WritableRasterBufferedImageImageIO

于 2008-12-18T13:49:00.013 回答
1

我不得不为一个大学项目用 Java 图像创建 GIF,我发现了这个。我会推荐 Acme 的开源 GifEncoder 类。好用又好用,两年多后我还记得它。这是链接:http://www.acme.com/java/software/Acme.JPM.Encoders.GifEncoder.html

这是G-Link:http://www.google.com/search?hl=en&q=acme+java+gif&btnG=搜索

于 2008-12-18T16:17:31.397 回答
-1

它并没有真正直接回答您的问题,但是使用ImageMagick不是更容易吗?它有Java 绑定

于 2008-12-18T15:52:13.913 回答