Android examples for android.graphics:Bitmap Operation
get Color Histogram from Bitmap
import android.graphics.Bitmap; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.LinearGradient; import android.graphics.Matrix; import android.graphics.Paint; import android.graphics.PixelFormat; import android.graphics.PorterDuff; import android.graphics.PorterDuffXfermode; import android.graphics.Rect; import android.graphics.RectF; import android.graphics.Shader; import android.graphics.drawable.BitmapDrawable; import android.graphics.drawable.ColorDrawable; import android.graphics.drawable.Drawable; import android.graphics.drawable.TransitionDrawable; import android.lemon.assist.Base64; import android.lemon.dct.FDCT; import android.view.View; import android.view.View; import android.widget.ImageView; import java.io.ByteArrayOutputStream; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.net.URL; import java.net.URLConnection; public class Main{ public static int[] getColorHistogram(Bitmap bitmap) { int width = bitmap.getWidth(); int height = bitmap.getHeight(); int[] areaColor = new int[64]; for (int i = 0; i < width; i++) { for (int j = 0; j < height; j++) { int pixels = bitmap.getPixel(i, j); int alpha = (pixels >> 24) & 0xFF; int red = (pixels >> 16) & 0xFF; int green = (pixels >> 8) & 0xFF; int blue = (pixels) & 0xFF; int redArea = 0; int greenArea = 0; int blueArea = 0; // 0-63 64-127 128-191 192-255 if (red >= 192) { redArea = 3;//w ww.ja v a2s . c om } else if (red >= 128) { redArea = 2; } else if (red >= 64) { redArea = 1; } else if (red >= 0) { redArea = 0; } if (green >= 192) { greenArea = 3; } else if (green >= 128) { greenArea = 2; } else if (green >= 64) { greenArea = 1; } else if (green >= 0) { greenArea = 0; } if (blue >= 192) { blueArea = 3; } else if (blue >= 128) { blueArea = 2; } else if (blue >= 64) { blueArea = 1; } else if (blue >= 0) { blueArea = 0; } int index = redArea * 16 + greenArea * 4 + blueArea; areaColor[index] += 1; } } return areaColor; } }