]> gerrit.simantics Code Review - simantics/platform.git/blob - bundles/org.simantics.utils.ui/src/org/simantics/utils/ui/gfx/clipboard/headers/BitmapInfoHeader.java
Migrated source code from Simantics SVN
[simantics/platform.git] / bundles / org.simantics.utils.ui / src / org / simantics / utils / ui / gfx / clipboard / headers / BitmapInfoHeader.java
1 /*******************************************************************************\r
2  * Copyright (c) 2007, 2010 Association for Decentralized Information Management\r
3  * in Industry THTH ry.\r
4  * All rights reserved. This program and the accompanying materials\r
5  * are made available under the terms of the Eclipse Public License v1.0\r
6  * which accompanies this distribution, and is available at\r
7  * http://www.eclipse.org/legal/epl-v10.html\r
8  *\r
9  * Contributors:\r
10  *     VTT Technical Research Centre of Finland - initial API and implementation\r
11  *******************************************************************************/\r
12 package org.simantics.utils.ui.gfx.clipboard.headers;\r
13 \r
14 import java.nio.ByteBuffer;\r
15 import java.nio.ByteOrder;\r
16 \r
17 \r
18 /**\r
19  * WIN32 API BITMAPINFOHEADER\r
20  * \r
21  * @see http://msdn.microsoft.com/library/default.asp?url=/library/en-us/gdi/bitmaps_1rw2.asp\r
22  * @see org.eclipse.swt.internal.win32.BITMAPINFOHEADER\r
23  * @author Marko Luukkainen\r
24  *\r
25  */\r
26 @SuppressWarnings("restriction")\r
27 public class BitmapInfoHeader {\r
28     public int biSize;\r
29     public int biWidth;\r
30     public int biHeight;\r
31     public short biPlanes;\r
32     public short biBitCount;\r
33     public int biCompression;\r
34     public int biSizeImage;\r
35     public int biXPelsPerMeter;\r
36     public int biYPelsPerMeter;\r
37     public int biClrUsed;\r
38     public int biClrImportant;\r
39     public static final int sizeof = 40;   \r
40     \r
41     public byte[] getBytes() {\r
42         byte [] array = new byte[sizeof];\r
43         ByteBuffer buffer = ByteBuffer.wrap(array);\r
44         buffer.order(ByteOrder.LITTLE_ENDIAN);\r
45         buffer.putInt(biSize);\r
46         buffer.putInt(biWidth);\r
47         buffer.putInt(biHeight);\r
48         buffer.putShort(biPlanes);\r
49         buffer.putShort(biBitCount);\r
50         buffer.putInt(biCompression);\r
51         buffer.putInt(biSizeImage);\r
52         buffer.putInt(biXPelsPerMeter);\r
53         buffer.putInt(biYPelsPerMeter);\r
54         buffer.putInt(biClrUsed);\r
55         buffer.putInt(biClrImportant); \r
56         return array;\r
57     }\r
58     \r
59     public void setBytes(byte[] array) {\r
60         ByteBuffer buffer = ByteBuffer.wrap(array);\r
61         buffer.order(ByteOrder.LITTLE_ENDIAN);\r
62         biSize = buffer.getInt();\r
63         biWidth = buffer.getInt();\r
64         biHeight = buffer.getInt();\r
65         biPlanes = buffer.getShort();\r
66         biBitCount = buffer.getShort();\r
67         biCompression = buffer.getInt();\r
68         biSizeImage = buffer.getInt();\r
69         biXPelsPerMeter = buffer.getInt();\r
70         biYPelsPerMeter = buffer.getInt();\r
71         biClrUsed = buffer.getInt();\r
72         biClrImportant = buffer.getInt();\r
73     }\r
74     \r
75 }\r