/* 左右反転 ImageFilter Ver 0.10 */ /* */ /* */ /* by Atsushi 98/4/13 */ package net.antun.lib.awt.image; import java.awt.Dimension; import java.awt.image.ColorModel; import java.awt.image.ImageFilter; public class MirrorImageFilter extends ImageFilter { /* --- Field --- */ private int originalWidth; /* --- Constructor --- */ public MirrorImageFilter() { } /* --- フィルタリング --- */ public void setDimensions(int width,int height) { originalWidth=width; consumer.setDimensions(width,height); } public void setHints(int hint) { consumer.setHints(hint & (COMPLETESCANLINES | SINGLEFRAME)); } public void setPixels(int x,int y,int width,int height,ColorModel model, byte pixels[],int offset,int scansize) { byte mirror[]; mirror=new byte[width]; for (int iy=0;iy<=height-1;iy++) { for (int ix=0;ix<=width-1;ix++) { mirror[width-1-ix]=pixels[offset+ix+iy*scansize]; } consumer.setPixels(originalWidth-1-(x+width-1),y+iy, width,1,model,mirror,0,width); } } public void setPixels(int x,int y,int width,int height,ColorModel model, int pixels[],int offset,int scansize) { int mirror[]; mirror=new int[width]; for (int iy=0;iy<=height-1;iy++) { for (int ix=0;ix<=width-1;ix++) { mirror[width-1-ix]=pixels[offset+ix+iy*scansize]; } consumer.setPixels(originalWidth-1-(x+width-1),y+iy, width,1,model,mirror,0,width); } } }