View Javadoc

1   package de.desy.acop.video.displayer.timage;
2   
3   import java.awt.Graphics;
4   import java.awt.Graphics2D;
5   import java.awt.Image;
6   import java.awt.image.BufferedImage;
7   
8   import javax.swing.JFrame;
9   import javax.swing.JPanel;
10  
11  import de.desy.acop.video.displayer.ImageParser;
12  import de.desy.tine.types.IMAGE;
13  
14  public class TestTImageConvertor {
15  
16  	/**
17  	 * @param args
18  	 */
19  	public static void main(String[] args) {
20  		TestTImageConvertor app = new TestTImageConvertor();
21  		try {
22  			app.test();
23  
24  		} catch (Exception e) {
25  			e.printStackTrace();
26  		}
27  	}
28  
29  	private void test() throws Exception {
30  		IMAGE timage = new IMAGE(0);
31  		ImageParser.loadImageFile("splash.png", timage);
32  
33  		// timage.getFrameHeader().aoiWidth = 700;
34  		// timage.getFrameHeader().aoiHeight = 500;
35  		// timage.getFrameHeader().xStart = 34;
36  		// timage.getFrameHeader().yStart = 38;
37  
38  		// [width=768,height=576]
39  
40  		// test
41  		TImageConverter converter = new TImageConverter();
42  		Image imageTest = converter.parseTineImage(timage, true);
43  		System.out.println("imageTest : " + imageTest);
44  
45  		BufferedImage bi = TImageUtils.toBufferedImage(imageTest);
46  
47  		int[] rgbArray = bi.getRGB(0, 0, bi.getWidth(), bi.getHeight(), null, 0, bi.getWidth());
48  		// int[] intArray = TImageUtils.getImageIntArray(bi);
49  		// byte[] rawbytes = TImageUtils.toRawBytes(bi, "jpeg");
50  
51  		// BufferedImage bitmapImage = TImageUtils.bitmapToImage(rawbytes, "jpeg");
52  
53  		System.out.println("<<< mdavid >>> Transfer type: " + bi.getColorModel().getTransferType());
54  		System.out.println("<<< mdavid >>> Image type: " + bi.getType());
55  		System.out.println("<<< mdavid >>> rgbArray: " + rgbArray);
56  
57  		BufferedImage biGray = TImageUtils.convertToGrayscale(bi);
58  		int[] rgbArrayGray = biGray.getRGB(0, 0, biGray.getWidth(), biGray.getHeight(), null, 0, biGray.getWidth());
59  		// byte[] byteArrayGray = TImageUtils.getImageByteArray(biGray);
60  		// byte[] rawbytesGray = TImageUtils.toRawBytes(biGray, "jpeg");
61  
62  		// timage.setImageFrameBuffer(byteArrayGray);
63  		// BufferedImage b2 = TImageUtils.toBufferedImage(TImageConverter.parseTineImage(timage, false));
64  
65  		System.out.println("<<< mdavid >>> biGray Transfer type: " + biGray.getColorModel().getTransferType());
66  		System.out.println("<<< mdavid >>> biGray Image type: " + biGray.getType());
67  		System.out.println("<<< mdavid >>> rgbArrayGray: " + rgbArrayGray);
68  
69  		MyPanel panel = new MyPanel(bi);
70  		JFrame frame = new JFrame("Test");
71  		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
72  		frame.add(panel);
73  		frame.setSize(1024, 800);
74  		frame.setVisible(true);
75  
76  	}
77  
78  	class MyPanel extends JPanel {
79  
80  		private BufferedImage bi;
81  
82  		public MyPanel(BufferedImage bi) {
83  			super();
84  			this.bi = bi;
85  		}
86  
87  		private static final long serialVersionUID = 1L;
88  
89  		@Override
90  		protected void paintComponent(Graphics g) {
91  			super.paintComponent(g); // paint background
92  			Graphics2D g2 = (Graphics2D) g;
93  
94  			if (bi == null) {
95  				int w = this.getWidth();
96  				int h = this.getHeight();
97  				bi = (BufferedImage) (this.createImage(w, h));
98  				Graphics2D gc = bi.createGraphics();
99  				for (int x = 0; x < w; x += 10) {
100 					gc.drawLine(x, 0, x, h);
101 				}
102 				for (int y = 0; y < h; y += 10) {
103 					gc.drawLine(0, y, w, y);
104 				}
105 			}
106 			g2.drawImage(bi, null, 0, 0);
107 		}
108 	}
109 }