package it.geosolutions.imageio.matfile5.sas; import java.awt.geom.AffineTransform; import java.awt.image.BandedSampleModel; import java.awt.image.BufferedImage; import java.awt.image.ColorModel; import java.awt.image.DataBuffer; import java.awt.image.DataBufferDouble; import java.awt.image.Raster; import java.awt.image.WritableRaster; import java.io.IOException; import org.junit.Test; import com.sun.imageio.plugins.common.ImageUtil; public class DummyTest { @Test public void testAffine() throws IOException { final double data [][] = new double[2][2500]; for (int j=0;j<2;j++) for (int i=0;i<2500;i++) if (i%100 == 1) data[j][i]=80; else if (i<500) data[j][i]=0; else if (i>=500 && i<1500) data[j][i]=20000; else data[j][i]=120000; final BandedSampleModel sampleModel = new BandedSampleModel(DataBuffer.TYPE_DOUBLE, 125, 20, 2); ColorModel cm = ImageUtil.createColorModel(sampleModel); final DataBufferDouble dbb = new DataBufferDouble(data, 2500); WritableRaster raster = Raster.createWritableRaster(sampleModel, dbb, null); BufferedImage bi = new BufferedImage(cm, raster, false, null); final AffineTransform transform= AffineTransform.getRotateInstance(0);// identity final AffineTransform transposeTransform=AffineTransform.getRotateInstance(0);// identity transposeTransform.concatenate(AffineTransform.getRotateInstance(Math.PI*1.5d)); transposeTransform.concatenate(AffineTransform.getTranslateInstance(-125,0)); transposeTransform.concatenate(AffineTransform.getScaleInstance(1,-1)); transposeTransform.concatenate(AffineTransform.getTranslateInstance(0,-20)); transform.preConcatenate(transposeTransform); SASAffineTransformOp transformOp = new SASAffineTransformOp(transform,null); BufferedImage dst = transformOp.filter(bi, null); } }