Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
 /*
  * @(#)ScaleImageCodec.java  1.0  2012-04-24
  * 
  * Copyright (c) 2012 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.converter;
import static org.monte.media.VideoFormatKeys.*;
import static org.monte.media.BufferFlag.*;

Scales a buffered image.

Author(s):
Werner Randelshofer
Version:
1.0 2012-04-24 Created.
public class ScaleImageCodec extends AbstractVideoCodec {
    public ScaleImageCodec() {
        super(new Format[]{
                    new Format(.,
                    ), //
                },
                new Format[]{
                    new Format(.,
                    ), //
                }//
                );
         = "Scale Image";
    }
    @Override
    public Format setOutputFormat(Format f) {
        if (!f.containsKey() || !f.containsKey()) {
            throw new IllegalArgumentException("Output format must specify width and height.");
        }
        Format fNew = super.setOutputFormat(f.prepend(, 24));
        return fNew;
    }
    @Override
    public int process(Buffer inBuffer out) {
        out.setMetaTo(in);
        out.format = ;
        if (in.isFlag()) {
            return ;
        }
        BufferedImage imgIn = (BufferedImagein.data;
        if (imgIn == null) {
            out.setFlag();
            return ;
        }
        BufferedImage imgOut = null;
        if (out.data instanceof BufferedImage) {
            imgOut = (BufferedImageout.data;
            if (imgOut.getWidth() != .get()
                    || imgOut.getHeight() != .get()//
                    || imgOut.getType() != imgIn.getType()) {
                imgOut = null;
            }
        }
        if (imgOut == null) {
            if (imgIn.getColorModel() instanceof IndexColorModel) {
                imgOut = new BufferedImage(.get(), .get(), imgIn.getType(), (IndexColorModelimgIn.getColorModel());
            } else {
                imgOut = new BufferedImage(.get(), .get(), imgIn.getType());
            }
        }
        Graphics2D g = imgOut.createGraphics();
        g.drawImage(imgIn, 0, 0, imgOut.getWidth() - 1, imgOut.getHeight() - 1, 0, 0, imgIn.getWidth() - 1, imgIn.getHeight() - 1, null);
        g.dispose();
        out.data = imgOut;
        return ;
    }
New to GrepCode? Check out our FAQ X