Book Image

Android NDK: Beginner's Guide

By : Sylvain Ratabouil
Book Image

Android NDK: Beginner's Guide

By: Sylvain Ratabouil

Overview of this book

Table of Contents (18 chapters)
Android NDK Beginner's Guide Second Edition
Credits
About the Author
About the Reviewers
www.PacktPub.com
Preface
Index

Time for action – processing pictures with the Bitmap API


Let's continue our application by decoding and filtering images on the native side by the color channel:

  1. Create native C source, jni/CameraDecoder.c (not a C++ file, so that we can see the difference with JNI code written in C++).

    Include android/bitmap.h, which defines the NDK bitmap processing API and stdlib.h (not cstdlib as this file is written in C):

    #include <android/bitmap.h>
    #include <stdlib.h>
    ...

    Write a few utility macros to help decode a video.

    • toInt() converts a jbyte to an integer, erasing all useless bits with a mask

    • max() gets the maximum between two values

    • clamp() clamps a value inside a defined interval

    • color() builds an ARGB color from each color component

      ...
      #define toInt(pValue) \
          (0xff & (int32_t) pValue)
      #define max(pValue1, pValue2) \
          (pValue1 < pValue2) ? pValue2 : pValue1
      #define clamp(pValue, pLowest, pHighest) \
          ((pValue < 0) ? pLowest : (pValue > pHighest) ? pHighest :...