所以我在桌面上有这个GIF文件(这是一张52张牌扑克牌)。我一直在制定一个程序,将其切割成小卡片。每张卡片的图像。但是,现在我想将这些GImages或像素数组写入文件,以便稍后使用它们。我认为这将会像编写.txt文件一样简单,但后来我对Google搜索的几个问题比以前更加困惑。用Java写一个GIF文件
那么我该如何着手制作像素数组或GImages的.gif文件(我有两个负载)?
所以我在桌面上有这个GIF文件(这是一张52张牌扑克牌)。我一直在制定一个程序,将其切割成小卡片。每张卡片的图像。但是,现在我想将这些GImages或像素数组写入文件,以便稍后使用它们。我认为这将会像编写.txt文件一样简单,但后来我对Google搜索的几个问题比以前更加困惑。用Java写一个GIF文件
那么我该如何着手制作像素数组或GImages的.gif文件(我有两个负载)?
东西沿着这些路线应该做的伎俩(修改图像类型,尺寸和像素阵列根据需要):
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。
像素是像素的int [] []是? – Ziggy 2008-12-18 14:15:00
它并不真的直接回答你的问题,但使用ImageMagick会不会更容易?它有Java bindings。
我不得不为大学项目创建GIF的Java图像,我发现这一点。 我会推荐Acme的Open-Source GifEncoder Class。很好用,易于使用,2年后我还记得它。 这里的链接:http://www.acme.com/java/software/Acme.JPM.Encoders.GifEncoder.html
而这里的G-链接:http://www.google.com/search?hl=en&q=acme+java+gif&btnG=Search
什么是GImage?这是什么库? (或者如果你不知道什么是包导入?) – McDowell 2008-12-18 15:36:30