~ludwig.schmidt/jhelioviewer/jhv-plugins

« back to all changes in this revision

Viewing changes to src/org/helioviewer/viewmodel/imagedata/SingleChannelShortImageData.java

  • Committer: Ludwig Schmidt
  • Date: 2009-09-08 23:26:03 UTC
  • mfrom: (5.1.6 jhv-imageformats)
  • Revision ID: ludwigschmidt2@gmail.com-20090908232603-8bexw0th8hdi6mz1
new internal image formats

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
package org.helioviewer.viewmodel.imagedata;
 
2
 
 
3
import java.awt.Point;
 
4
import java.awt.image.BufferedImage;
 
5
import java.awt.image.DataBuffer;
 
6
import java.awt.image.DataBufferShort;
 
7
import java.awt.image.Raster;
 
8
 
 
9
import org.helioviewer.viewmodel.imageformat.ImageFormat;
 
10
import org.helioviewer.viewmodel.imageformat.StaticSingleChannelIntegralImageFormat;
 
11
import org.helioviewer.viewmodel.imagetransport.ImageTransport;
 
12
import org.helioviewer.viewmodel.imagetransport.StaticShort16ImageTransport;
 
13
 
 
14
public class SingleChannelShortImageData implements JavaBufferedImageData {
 
15
 
 
16
        BufferedImage image;
 
17
 
 
18
    ImageFormat format;
 
19
 
 
20
    public SingleChannelShortImageData(int newWidth, int newHeight, int newBitDepth, short[] newPixelData) {
 
21
        image = new BufferedImage(newWidth, newHeight, BufferedImage.TYPE_USHORT_GRAY);
 
22
        DataBuffer dataBuffer = new DataBufferShort(newPixelData, newWidth * newHeight);
 
23
        
 
24
        // create the appropriate bit mask
 
25
        int mask = 0xffffffff;
 
26
        mask = mask >>> (32 - newBitDepth);
 
27
        
 
28
        Raster raster = Raster.createPackedRaster(dataBuffer, newWidth, newHeight,
 
29
                newWidth, new int[] {mask}, new Point(0,0));
 
30
        image.setData(raster);
 
31
        format = new StaticSingleChannelIntegralImageFormat(newBitDepth);
 
32
    }
 
33
 
 
34
    public SingleChannelShortImageData(int newBitDepth, BufferedImage newImage) {
 
35
        image = newImage;
 
36
        format = new StaticSingleChannelIntegralImageFormat(newBitDepth);
 
37
    }
 
38
 
 
39
    public BufferedImage getBufferedImage() {
 
40
        return image;
 
41
    }
 
42
 
 
43
    public int getHeight() {
 
44
        return image.getHeight();
 
45
    }
 
46
 
 
47
    public ImageFormat getImageFormat() {
 
48
        return format;
 
49
    }
 
50
 
 
51
    public ImageTransport getImageTransport() {
 
52
        short[] pixelData = ((DataBufferShort) image.getRaster().getDataBuffer()).getData();
 
53
        return new StaticShort16ImageTransport(pixelData);
 
54
    }
 
55
 
 
56
    public int getWidth() {
 
57
        return image.getWidth();
 
58
    }
 
59
}