所以我的桌面上有这个GIF文件(这是一张52张扑克牌)。我一直在研究一个程序,将它切换成每张卡片的小acm.graphics.GImages。但是,现在,我想将这些GImages或像素数组写入文件,以便以后可以使用它们。我认为它会像写.txt文件一样直截了当,但之后的几次谷歌搜索比以前更加困惑。
那么如何从像素阵列或GImages中制作.gif文件(我已经加载了两者)?
答案 0 :(得分: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将有三个整数[红色] [绿色] [蓝色]。
相关的javadoc:WritableRaster,BufferedImage和ImageIO。
答案 1 :(得分:1)
我不得不为大学项目用Java Images创建GIF,我发现了这一点。 我推荐Acme的开源GifEncoder类。很好,易于使用,我还记得它超过2年后。 这是链接: 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=Search
答案 2 :(得分:-1)
它并不能直接回答您的问题,但使用ImageMagick会不会更容易?它有Java bindings。