~malte.nuhn/jhelioviewer/opendialog

« back to all changes in this revision

Viewing changes to src/jhv/src/org/helioviewer/jhv/internal_plugins/filter/gammacorrection/GammaCorrectionFilter.java

  • Committer: Malte Nuhn
  • Date: 2011-09-07 00:19:50 UTC
  • mfrom: (435.1.7 trunk)
  • Revision ID: malte.nuhn@rwth-aachen.de-20110907001950-k94vdauz0o1wlj42
merge with trunk

Show diffs side-by-side

added added

removed removed

Lines of Context:
5
5
import org.helioviewer.viewmodel.filter.AbstractFilter;
6
6
import org.helioviewer.viewmodel.filter.GLFragmentShaderFilter;
7
7
import org.helioviewer.viewmodel.filter.StandardFilter;
8
 
import org.helioviewer.viewmodel.imagedata.ARGBInt32ImageData;
9
8
import org.helioviewer.viewmodel.imagedata.ImageData;
10
 
import org.helioviewer.viewmodel.imagedata.SingleChannelByte8ImageData;
11
 
import org.helioviewer.viewmodel.imagedata.SingleChannelShortImageData;
12
9
import org.helioviewer.viewmodel.imagetransport.Byte8ImageTransport;
13
10
import org.helioviewer.viewmodel.imagetransport.Int32ImageTransport;
14
11
import org.helioviewer.viewmodel.imagetransport.Short16ImageTransport;
136
133
                    buildTable8();
137
134
                }
138
135
                byte[] pixelData = ((Byte8ImageTransport) data.getImageTransport()).getByte8PixelData();
139
 
                byte[] resultPixelData = new byte[pixelData.length];
140
136
                for (int i = 0; i < pixelData.length; i++) {
141
 
                    resultPixelData[i] = gammaTable8[pixelData[i] & 0xFF];
 
137
                    pixelData[i] = gammaTable8[pixelData[i] & 0xFF];
142
138
                }
143
 
                return new SingleChannelByte8ImageData(data, resultPixelData);
 
139
                return data;
144
140
 
145
141
                // Single channel short image
146
142
            } else if (data.getImageTransport() instanceof Short16ImageTransport) {
149
145
                }
150
146
 
151
147
                short[] pixelData = ((Short16ImageTransport) data.getImageTransport()).getShort16PixelData();
152
 
                short[] resultPixelData = new short[pixelData.length];
153
148
                for (int i = 0; i < pixelData.length; i++) {
154
 
                    resultPixelData[i] = gammaTable16[pixelData[i] & 0xFFFF];
 
149
                    pixelData[i] = gammaTable16[pixelData[i] & 0xFFFF];
155
150
                }
156
 
                return new SingleChannelShortImageData(data, resultPixelData);
 
151
                return data;
157
152
 
158
153
                // (A)RGB image: Filter each channel separate
159
154
            } else if (data.getImageTransport() instanceof Int32ImageTransport) {
161
156
                    buildTable8();
162
157
                }
163
158
                int[] pixelData = ((Int32ImageTransport) data.getImageTransport()).getInt32PixelData();
164
 
                int[] resultPixelData = new int[pixelData.length];
165
159
                for (int i = 0; i < pixelData.length; i++) {
166
160
 
167
161
                    int rgb = pixelData[i];
174
168
                    g = gammaTable8[g] & 0xFF;
175
169
                    b = gammaTable8[b] & 0xFF;
176
170
 
177
 
                    resultPixelData[i] = (a << 24) | (r << 16) | (g << 8) | b;
 
171
                    pixelData[i] = (a << 24) | (r << 16) | (g << 8) | b;
178
172
                }
179
 
                return new ARGBInt32ImageData(data, resultPixelData);
 
173
                return data;
180
174
            }
181
175
        } finally {
182
176
            forceRefilter = false;