View Javadoc

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