2011-12-18 2 views

답변

4

여기에 GIFanimcreateImage() 메서드가 있습니다. 아마 그것은 당신에게 시작을 줄 것입니다. 이것은 매우 원래 구현이라고

public byte[] createImage() throws Exception { 

    ImageWriter iw = ImageIO.getImageWritersByFormatName("gif").next(); 

    ByteArrayOutputStream os = new ByteArrayOutputStream(); 
    ImageOutputStream ios = ImageIO.createImageOutputStream(os); 
    iw.setOutput(ios); 
    iw.prepareWriteSequence(null); 
    int i = 0; 

    for (AnimationFrame animationFrame : frameCollection) { 

     BufferedImage src = animationFrame.getImage(); 
     ImageWriteParam iwp = iw.getDefaultWriteParam(); 
     IIOMetadata metadata = iw.getDefaultImageMetadata(
      new ImageTypeSpecifier(src), iwp); 

     configure(metadata, "" + animationFrame.getDelay(), i); 

     IIOImage ii = new IIOImage(src, null, metadata); 
     iw.writeToSequence(ii, null); 
     i++; 
    } 

    iw.endWriteSequence(); 
    ios.close(); 
    return os.toByteArray(); 
} 

주, 즉 상당히 컬러 팔레트를 압축하고 다른 최적화를 수행하는 라이브러리를 만들 수보다 큰 이미지를 생성한다. 이와 같은 라이브러리를 구현하는 것은 중요한 작업입니다.

+0

코드 라이브러리 대신 최종 사용자 응용 프로그램이었던 웹 사이트에서이 코드를 가져온 라이브러리를 찾을 수 없습니다. 이 코드베이스의 복사본이 있습니까? – neilf

+0

@neilf 완료 했습니까? –

관련 문제