
org.monte.media.anim.BitmapCodec Maven / Gradle / Ivy
/*
* @(#)BitmapCodec.java 1.0 2011-09-04
*
* Copyright (c) 2011 Werner Randelshofer, Goldau, Switzerland.
* All rights reserved.
*
* You may not use, copy or modify this file, except in compliance with the
* license agreement you entered into with Werner Randelshofer.
* For details see accompanying license terms.
*/
package org.monte.media.anim;
import org.monte.media.AbstractVideoCodec;
import org.monte.media.Buffer;
import org.monte.media.Format;
import org.monte.media.image.BitmapImage;
import java.awt.image.BufferedImage;
import static org.monte.media.anim.AmigaVideoFormatKeys.*;
import static org.monte.media.BufferFlag.*;
/**
* Converts BufferedImage to BitmapImage.
*
* @author Werner Randelshofer
* @version 1.0 2011-09-04 Created.
*/
public class BitmapCodec extends AbstractVideoCodec {
public BitmapCodec() {
super(new Format[]{
new Format(MediaTypeKey, MediaType.VIDEO, MimeTypeKey, MIME_ANIM,
EncodingKey, ENCODING_ANIM_OP5, DataClassKey, byte[].class, FixedFrameRateKey, false), //
},
new Format[]{
new Format(MediaTypeKey, MediaType.VIDEO, MimeTypeKey, MIME_JAVA,
EncodingKey, ENCODING_BUFFERED_IMAGE, FixedFrameRateKey, false), //
});
name="ILBM Codec";
}
@Override
public int process(Buffer in, Buffer out) {
out.setMetaTo(in);
if (in.isFlag(DISCARD)) {
return CODEC_OK;
}
out.format=outputFormat;
BufferedImage pixmap = (BufferedImage) in.data;
Format vf = (Format) outputFormat;
BitmapImage bitmap = out.data instanceof BitmapImage ? (BitmapImage) out.data : null;
if (bitmap == null || bitmap.getWidth() != vf.get(WidthKey)
|| bitmap.getHeight() != vf.get(HeightKey) || bitmap.getDepth() != vf.get(DepthKey)) {
bitmap = new BitmapImage(vf.get(WidthKey), vf.get(HeightKey), vf.get(DepthKey), pixmap.getColorModel());
out.data = bitmap;
}
bitmap.setPlanarColorModel(pixmap.getColorModel());
bitmap.convertFromChunky(pixmap);
return CODEC_OK;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy