Android examples for Camera:Camera Preview
Converts YUV data for a pixel (such as from the camera preview data) to RGB values.
/* //from ww w .jav a2 s .c om * Copyright 2012 Google Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ //package com.java2s; public class Main { /** Converts YUV data for a pixel (such as from the camera preview data) to RGB values. */ public static void yuvToRgb(byte y, byte u, byte v, int[] rgb) { // adapted from http://stackoverflow.com/questions/8399411/how-to-retrieve-rgb-value-for-each-color-apart-from-one-dimensional-integer-rgb // produces 18-bit RGB components, so shift by 10 int yy = (0xff & y) - 16; if (yy < 0) yy = 0; // u and v need to be translated to +-128 int uu = (0xff & u) - 128; int vv = (0xff & v) - 128; int y1192 = 1192 * yy; int red = (y1192 + 1634 * vv) >> 10; int green = (y1192 - 833 * vv - 400 * uu) >> 10; int blue = (y1192 + 2066 * uu) >> 10; if (red < 0) red = 0; if (red > 255) red = 255; if (green < 0) green = 0; if (green > 255) green = 255; if (blue < 0) blue = 0; if (blue > 255) blue = 255; rgb[0] = red; rgb[1] = green; rgb[2] = blue; } }