1 /* 2 * Copyright (c) 2000, Oracle and/or its affiliates. All rights reserved. 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4 * 5 * This code is free software; you can redistribute it and/or modify it 6 * under the terms of the GNU General Public License version 2 only, as 7 * published by the Free Software Foundation. Oracle designates this 8 * particular file as subject to the "Classpath" exception as provided 9 * by Oracle in the LICENSE file that accompanied this code. 10 * 11 * This code is distributed in the hope that it will be useful, but WITHOUT 12 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 13 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 14 * version 2 for more details (a copy is included in the LICENSE file that 15 * accompanied this code). 16 * 17 * You should have received a copy of the GNU General Public License version 18 * 2 along with this work; if not, write to the Free Software Foundation, 19 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 20 * 21 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 22 * or visit www.oracle.com if you need additional information or have any 23 * questions. 24 */ 25 26 #ifndef IntDcm_h_Included 27 #define IntDcm_h_Included 28 29 typedef jint IntDcmPixelType; 30 typedef jint IntDcmElemType; 31 32 #define SwapIntDcmComponentsX123ToX321(pixel) \ 33 (((pixel) << 16) | \ 34 ((pixel) & 0xff00) | \ 35 (((pixel) >> 16) & 0xff)) 36 37 #define SwapIntDcmComponentsX123ToC321(pixel) \ 38 (((pixel & 0xff) << 16) | \ 39 ((pixel) & 0xff00) | \ 40 (((pixel) >> 16) & 0xff)) 41 42 #define SwapIntDcmComponentsX123ToS321(pixel) \ 43 (0xff000000 | \ 44 ((pixel) << 16) | \ 45 ((pixel) & 0xff00) | \ 46 (((pixel) >> 16) & 0xff)) 47 48 #define SwapIntDcmComponents4123To4321(pixel) \ 49 ((((pixel) & 0xff) << 16) | \ 50 ((pixel) & 0xff00ff00) | \ 51 (((pixel) >> 16) & 0xff)) 52 53 #define ExtractIntDcmComponentsX123(pixel, c1, c2, c3) \ 54 do { \ 55 (c3) = (pixel) & 0xff; \ 56 (c2) = ((pixel) >> 8) & 0xff; \ 57 (c1) = ((pixel) >> 16) & 0xff; \ 58 } while (0) 59 60 #define ExtractIntDcmComponents123X(pixel, c1, c2, c3) \ 61 do { \ 62 (c3) = ((pixel) >> 8) & 0xff; \ 63 (c2) = ((pixel) >> 16) & 0xff; \ 64 (c1) = ((pixel) >> 24) & 0xff; \ 65 } while (0) 66 67 #define ExtractIntDcmComponents1234(pixel, c1, c2, c3, c4) \ 68 do { \ 69 (c4) = (pixel) & 0xff; \ 70 (c3) = ((pixel) >> 8) & 0xff; \ 71 (c2) = ((pixel) >> 16) & 0xff; \ 72 (c1) = ((pixel) >> 24) & 0xff; \ 73 } while (0) 74 75 #define ComposeIntDcmComponentsX123(c1, c2, c3) \ 76 (((((c1) << 8) | (c2)) << 8) | (c3)) 77 78 #define ComposeIntDcmComponents123X(c1, c2, c3) \ 79 ((((((c1) << 8) | (c2)) << 8) | (c3)) << 8) 80 81 #define ComposeIntDcmComponents1234(c1, c2, c3, c4) \ 82 (((((((c1) << 8) | (c2)) << 8) | (c3)) << 8) | (c4)) 83 84 #endif /* IntDcm_h_Included */ 85