package org.wikiwebserver.util.image;

import java.awt.Graphics2D;
import java.awt.RenderingHints;
import java.awt.image.BufferedImage;
import java.io.IOException;
import java.io.OutputStream;

import javax.imageio.ImageIO;

public class ImageIOHelper extends GraphicsHelper {
    
    private String type;
    private BufferedImage image;
    private Graphics2D graphics;
    
    public ImageIOHelper(int width, int height, String type, OutputStream out) {
        super(width, height, out);
        this.type = type;
    }
    
    public Graphics2D createGraphics() {
        
        image = new BufferedImage(getWidth(), getHeight(), BufferedImage.TYPE_INT_RGB);
        graphics = image.createGraphics();
        graphics.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);

        return graphics;
    }    

    public void writeImageData() throws IOException {
        ImageIO.write(image, type, getOutputStream());
        image.flush();
    }   
    
    public String getContentType() {
        return "image/" + type;
    }
}

