2013-05-20 11 views
14

Próbuję skonfigurować prosty program Java, który tworzy jeden animowany gif z wielu innych obrazów (jpg). Czy ktoś może mi powiedzieć, jak to osiągnąć w Javie? Przeszukałem już Google, ale nie mogłem znaleźć niczego przydatnego.Czy istnieje sposób na utworzenie jednego obrazu Gif z wielu obrazów w Javie?

Dziękuję wam!

+0

Masz na myśli animowany gif? czy chcesz duży gif złożony z kilku mniejszych gifów? Czy chcesz wkleić jeden gif na innym przy użyciu przezroczystości GIF? – Dariusz

+0

Chcę animowany gif. – user2399314

+0

Ten [link] (https://github.com/dragon66/icafe/wiki) ma o wiele więcej informacji niż tworzenie animowanego GIF-a. – dragon66

Odpowiedz

24

Tu masz przykład klasy, która tworzy animowany gif z różnych obrazów:

Link

Klasa dostarcza następujących metod:

class GifSequenceWriter { 
    public GifSequenceWriter(
     ImageOutputStream outputStream, 
     int imageType, 
     int timeBetweenFramesMS, 
     boolean loopContinuously); 

    public void writeToSequence(RenderedImage img); 

    public void close(); 
} 

a także mały przykład:

public static void main(String[] args) throws Exception { 
    if (args.length > 1) { 
    // grab the output image type from the first image in the sequence 
    BufferedImage firstImage = ImageIO.read(new File(args[0])); 

    // create a new BufferedOutputStream with the last argument 
    ImageOutputStream output = 
     new FileImageOutputStream(new File(args[args.length - 1])); 

    // create a gif sequence with the type of the first image, 1 second 
    // between frames, which loops continuously 
    GifSequenceWriter writer = 
     new GifSequenceWriter(output, firstImage.getType(), 1, false); 

    // write out the first image to our sequence... 
    writer.writeToSequence(firstImage); 
    for(int i=1; i<args.length-1; i++) { 
     BufferedImage nextImage = ImageIO.read(new File(args[i])); 
     writer.writeToSequence(nextImage); 
    } 

    writer.close(); 
    output.close(); 
    } else { 
    System.out.println(
     "Usage: java GifSequenceWriter [list of gif files] [output file]"); 
    } 
} 
+8

Dobrze jest umieścić główną część połączonej treści w odpowiedzi, na wypadek gdyby link przeszedł w tryb offline. – Pshemo

+0

Masz rację, edytuj teraz. –

+0

Zawierasz tylko interfejs klasy 'GifSequenceWriter' (nie ma ciała w konstruktorze i metodach, więc nie możemy tego naprawdę użyć). Najważniejsze jest [w jaki sposób zostało to zaimplementowane] (http://elliot.kroo.net/software/java/GifSequenceWriter/GifSequenceWriter.java). – Pshemo

Powiązane problemy