Android examples for Graphics:Color Value
Gets the RGB pixel at the given position in a YUV420SPNV21 byte array
/*//from www.j a v a2 s. co m * Copyright 2014 Martin Brabham * Copyright 2014 Daniel Velazco * * 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; import android.graphics.Color; public class Main { public static int FRAME_WIDTH = 640; public static int FRAME_HEIGHT = 480; /** * Gets the RGB pixel at the given position in a YUV420SPNV21 byte array * * @param yuv byte array * @param x {@link Integer} * @param y {@link Integer} * @return {@link Integer} */ public static int getColorAtPoint(byte[] yuv, int x, int y) { int i = (FRAME_WIDTH * FRAME_HEIGHT) + FRAME_WIDTH * (y >> 1) + (x & 0xFFFFFFFE); int j = 0xFF & yuv[x + y * FRAME_WIDTH]; int k = 0xFF & yuv[(i + 1)]; int m = 0xFF & yuv[i]; int n = k - 128; int i1 = m - 128; int i2 = (int) (j + 1.402f * i1); int i3 = (int) (j - 0.344f * n - 0.714f * i1); int i4 = (int) (j + 1.772f * n); i2 = (i2 < 0) ? 0 : i2; i2 = (i2 > 255) ? 255 : i2; i3 = (i3 < 0) ? 0 : i3; i3 = (i3 > 255) ? 255 : i3; i4 = (i4 < 0) ? 0 : i4; i4 = (i4 > 255) ? 255 : i4; return Color.rgb(i2, i3, i4); } }