package minizoo.c; import minizoo.c.core.Vector2d; import minizoo.c.filter.ColorTintFilter; import javax.imageio.ImageIO; import java.awt.*; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; import java.nio.Buffer; public class Sprite extends Entity { public Sprite(String filename) { super("Sprite:" + filename); try { setImage(ImageIO.read(new File(filename))); } catch (IOException e) { e.printStackTrace(); } } public BufferedImage getImage() { return image; } public void setImage(BufferedImage image) { this.image = image; if (image == null) { setContentSize(new Vector2d(0, 0)); } else { setContentSize(new Vector2d(getImage().getWidth(), getImage().getHeight())); } } @Override public void visit(Graphics2D g2) { if (image != null) { ColorTintFilter tint = new ColorTintFilter(getTintedColor(Color.white)); BufferedImage dst = tint.createCompatibleDestImage(image, null); g2.drawRenderedImage(tint.filter(image, dst), null); } } BufferedImage image; }