1
나는 그 곳 곳곳을 훑어 보았지만 이해하기 쉬운 설명을 찾을 수없는 것 같습니다. (내가 할 수있는 다른 Java 사용자가 작성한 클래스와 메서드를 찾았지만 직접 작성하고 싶습니다.)ImageWriter 및 ImageIO를 사용하여 애니메이션 GIF를 Java로 인코딩하는 방법은 무엇입니까?
나는 그 곳 곳곳을 훑어 보았지만 이해하기 쉬운 설명을 찾을 수없는 것 같습니다. (내가 할 수있는 다른 Java 사용자가 작성한 클래스와 메서드를 찾았지만 직접 작성하고 싶습니다.)ImageWriter 및 ImageIO를 사용하여 애니메이션 GIF를 Java로 인코딩하는 방법은 무엇입니까?
여기에 GIFanim의 createImage()
메서드가 있습니다. 아마 그것은 당신에게 시작을 줄 것입니다. 이것은 매우 원래 구현이라고
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();
}
주, 즉 상당히 컬러 팔레트를 압축하고 다른 최적화를 수행하는 라이브러리를 만들 수보다 큰 이미지를 생성한다. 이와 같은 라이브러리를 구현하는 것은 중요한 작업입니다.
코드 라이브러리 대신 최종 사용자 응용 프로그램이었던 웹 사이트에서이 코드를 가져온 라이브러리를 찾을 수 없습니다. 이 코드베이스의 복사본이 있습니까? – neilf
@neilf 완료 했습니까? –