19066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* 29066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Copyright (C) 2006 The Android Open Source Project 39066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 49066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Licensed under the Apache License, Version 2.0 (the "License"); 59066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * you may not use this file except in compliance with the License. 69066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * You may obtain a copy of the License at 79066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 89066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * http://www.apache.org/licenses/LICENSE-2.0 99066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Unless required by applicable law or agreed to in writing, software 119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * distributed under the License is distributed on an "AS IS" BASIS, 129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * See the License for the specific language governing permissions and 149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * limitations under the License. 159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectpackage android.graphics; 189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectpublic class PixelFormat 209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{ 21a696f5d667227365da732481770767dcb330dd23Mathias Agopian /* these constants need to match those in hardware/hardware.h */ 229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static final int UNKNOWN = 0; 249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** System chooses a format that supports translucency (many alpha bits) */ 269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static final int TRANSLUCENT = -3; 279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * System chooses a format that supports transparency 309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * (at least 1 alpha bit) 319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static final int TRANSPARENT = -2; 339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** System chooses an opaque format (no alpha bits required) */ 359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static final int OPAQUE = -1; 369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static final int RGBA_8888 = 1; 389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static final int RGBX_8888 = 2; 399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static final int RGB_888 = 3; 409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static final int RGB_565 = 4; 419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 42e9d4c71f47f74ee9a4a490f62769ad010a17d19bMathias Agopian @Deprecated 439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static final int RGBA_5551 = 6; 44e9d4c71f47f74ee9a4a490f62769ad010a17d19bMathias Agopian @Deprecated 459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static final int RGBA_4444 = 7; 469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static final int A_8 = 8; 479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static final int L_8 = 9; 48e9d4c71f47f74ee9a4a490f62769ad010a17d19bMathias Agopian @Deprecated 499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static final int LA_88 = 0xA; 50e9d4c71f47f74ee9a4a490f62769ad010a17d19bMathias Agopian @Deprecated 519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static final int RGB_332 = 0xB; 52a696f5d667227365da732481770767dcb330dd23Mathias Agopian 53a696f5d667227365da732481770767dcb330dd23Mathias Agopian 549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 55a696f5d667227365da732481770767dcb330dd23Mathias Agopian * @deprecated use {@link android.graphics.ImageFormat#NV16 56a696f5d667227365da732481770767dcb330dd23Mathias Agopian * ImageFormat.NV16} instead. 579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 58a696f5d667227365da732481770767dcb330dd23Mathias Agopian @Deprecated 599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static final int YCbCr_422_SP= 0x10; 60df4578e8ab7008a7e528d5af2ae761b33cf2bdf4Scott Main 61a696f5d667227365da732481770767dcb330dd23Mathias Agopian /** 62a696f5d667227365da732481770767dcb330dd23Mathias Agopian * @deprecated use {@link android.graphics.ImageFormat#NV21 63a696f5d667227365da732481770767dcb330dd23Mathias Agopian * ImageFormat.NV21} instead. 64df4578e8ab7008a7e528d5af2ae761b33cf2bdf4Scott Main */ 65a696f5d667227365da732481770767dcb330dd23Mathias Agopian @Deprecated 669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static final int YCbCr_420_SP= 0x11; 679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 68a696f5d667227365da732481770767dcb330dd23Mathias Agopian /** 69a696f5d667227365da732481770767dcb330dd23Mathias Agopian * @deprecated use {@link android.graphics.ImageFormat#YUY2 70a696f5d667227365da732481770767dcb330dd23Mathias Agopian * ImageFormat.YUY2} instead. 71eb68c46a40c773eb56ef7bcf8e7ece5c6a5a8d23Chih-Chung Chang */ 72a696f5d667227365da732481770767dcb330dd23Mathias Agopian @Deprecated 73eb68c46a40c773eb56ef7bcf8e7ece5c6a5a8d23Chih-Chung Chang public static final int YCbCr_422_I = 0x14; 74eb68c46a40c773eb56ef7bcf8e7ece5c6a5a8d23Chih-Chung Chang 759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 76a696f5d667227365da732481770767dcb330dd23Mathias Agopian * @deprecated use {@link android.graphics.ImageFormat#JPEG 77a696f5d667227365da732481770767dcb330dd23Mathias Agopian * ImageFormat.JPEG} instead. 789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 79a696f5d667227365da732481770767dcb330dd23Mathias Agopian @Deprecated 809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static final int JPEG = 0x100; 819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /* 839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * We use a class initializer to allow the native code to cache some 849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * field offsets. 859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project native private static void nativeClassInit(); 879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project static { nativeClassInit(); } 889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static native void getPixelFormatInfo(int format, PixelFormat info); 909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static boolean formatHasAlpha(int format) { 919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project switch (format) { 929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project case PixelFormat.A_8: 939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project case PixelFormat.LA_88: 949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project case PixelFormat.RGBA_4444: 959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project case PixelFormat.RGBA_5551: 969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project case PixelFormat.RGBA_8888: 979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project case PixelFormat.TRANSLUCENT: 989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project case PixelFormat.TRANSPARENT: 999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return true; 1009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return false; 1029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public int bytesPerPixel; 1059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public int bitsPerPixel; 1069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project} 107