2008-12-18 10 views
1

J'ai donc ce fichier GIF sur mon bureau (c'est un paquet de 52 cartes de poker). J'ai travaillé sur un programme qui le coupe en petit acm.graphics.GImages de chaque carte. Maintenant, cependant, je veux écrire ces GImages ou matrices de pixels dans un fichier afin que je puisse les utiliser plus tard. Je pensais que ce serait aussi simple que l'écriture des fichiers .txt, mais un couple de recherches Google plus tard, je suis plus confus qu'auparavant.Écrire un fichier GIF en Java

Alors, comment puis-je créer des fichiers .gif à partir de matrices de pixels ou de GImages (j'ai les deux)?

+0

Qu'est-ce qu'un gImage? Quelle bibliothèque est-ce? (Ou quelle est l'importation de paquet si vous ne savez pas?) – McDowell

Répondre

7

Quelque chose le long de ces lignes devrait faire l'affaire (modifier le type d'image, les dimensions et la matrice de pixels selon le cas):

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 » devra retourner un tableau représentant la couleur pour ce pixel. Dans ce cas, en utilisant RGB, le colorArray aura trois entiers [rouge] [vert] [bleu].

Javadoc pertinent: WritableRaster, BufferedImage et ImageIO.

+0

pixels est un int [] [] de pixels oui? – Ziggy

+0

Non, ma première réponse était en fait incorrecte (désolé). J'espère que l'édition aidera. Malheureusement, le javadoc pour cette méthode ne fait pas un bon travail de décrire ce que le tableau doit être. –

+0

aussi! Ayant des problèmes avec BufferedImage.TYPE_RGB problème de la "ne peut pas être résolu" variété "... – Ziggy

Questions connexes