Package org.albite.image

Source Code of org.albite.image.AlbiteImage

/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/

package org.albite.image;

import java.io.DataInputStream;
import java.io.IOException;
import javax.microedition.lcdui.Graphics;
import javax.microedition.lcdui.Image;

/**
*
* @author albus
*/
public abstract class AlbiteImage {
    public static final int         MAGIC_NUMBER        = 1095516745;
    public static final String      FILE_EXTENSION      = ".ali";
    protected static final String   INVALID_FILE_ERROR  = "File not an image.";

    int width;
    int height;

    public final int getWidth() {
        return width;
    }

    public final int getHeight() {
        return height;
    }

    protected final void loadHeader(final DataInputStream din)
            throws IOException, AlbiteImageException {

        if (din.readInt() != MAGIC_NUMBER) {
            throw new AlbiteImageException(INVALID_FILE_ERROR);
        }

        width  = din.readShort();
        height = din.readShort();

        /*
         * if EOF was risen, then probably the supplied dimensions from the
         * header were invalid!
         */
    }

    public static Image rescale(
            final Image image, final int thumbWidth, final int thumbHeight) {

        int sourceWidth = image.getWidth();
        int sourceHeight = image.getHeight();

        Image thumb = Image.createImage(thumbWidth, thumbHeight);
        Graphics g = thumb.getGraphics();

        int dx, dy;
        int anchor = Graphics.LEFT | Graphics.TOP;

        for (int y = 0; y < thumbHeight; y++) {
            for (int x = 0; x < thumbWidth; x++) {
                g.setClip(x, y, 1, 1);
                dx = x * sourceWidth / thumbWidth;
                dy = y * sourceHeight / thumbHeight;
                g.drawImage(image, x - dx, y - dy, anchor);
            }
        }

        return thumb;
    }
}
TOP

Related Classes of org.albite.image.AlbiteImage

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.