Statistics
| Revision:

root / branches / CqCMSDvp / libraries / libCq CMS for java.old / src / org / cresques / io / raster / LinearEnhancementImageFilter.java @ 2147

History | View | Annotate | Download (1.53 KB)

1
/*
2
 * Created on 25-feb-2005
3
 */
4
package org.cresques.io.raster;
5

    
6
import java.awt.Image;
7
import java.awt.image.BufferedImage;
8

    
9
/**
10
 * @author Luis W. Sevilla (sevilla_lui@gva.es)
11
 */
12
public         class LinearEnhancementImageFilter extends LinearEnhancementFilter {
13
        
14
        public LinearEnhancementImageFilter(){
15
                super();
16
        }
17
        
18
        public void pre(){
19
                //Obtenci?n de par?metros
20
                this.image = (Image)params.get("raster");
21
                this.stats = (RasterStats)params.get("stats");
22
                this.removeExtrema = ((Boolean)params.get("remove")).booleanValue();
23
                height = image.getHeight(null);
24
                width = image.getWidth(null);
25
                super.pre();
26
        }
27
        
28
        public void process(int x, int y) {
29
                int pt = ((BufferedImage) image).getRGB(x,y);
30
                int []px4 = {
31
                        ((pt & 0xff000000) >> 24) & 0xff, ((pt & 0xff0000) >> 16) & 0xff,
32
                        ((pt & 0xff00) >> 8) & 0xff, pt & 0xff};
33
                        
34
                for (int i=0; i<3; i++) {
35
                        if (px4[i+1] > maxBandValue[i])
36
                                px4[i+1] = maxBandValue[i];
37
                        else if (px4[i+1] < minBandValue[i] )
38
                                        px4[i+1] = minBandValue[i];
39
                        px4[i+1] = (((int) (((double)px4[i+1])*scale[i] + offset[i])) & 0xff);
40
                }
41
                ((BufferedImage) image).setRGB(x,y, (
42
                        (px4[0] << 24) & 0xff000000 | (px4[1] << 16) & 0xff0000 |
43
                        (px4[2] << 8)  & 0xff00 | (px4[3] & 0xff) ));
44
        }
45
        
46
        public Object getResult(String name) {
47
                if(name.equals("raster"))
48
                        return (Object)this.image;
49
                else 
50
                        return null;
51
        }
52
        
53
        public int getInRasterDataType(){
54
                return RasterBuf.TYPE_IMAGE;
55
        }
56
        
57
        public int getOutRasterDataType(){
58
                return RasterBuf.TYPE_IMAGE;
59
        }
60
        
61
        public void post(){};
62
        
63
        public void processLine(int y){};
64
}
65

    
66