所以我在桌面上有這個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