10f8a40e4cfdc5f6cd47c22e81f69ed0446067c54Andrew Hsieh/*
20f8a40e4cfdc5f6cd47c22e81f69ed0446067c54Andrew Hsieh * Copyright (C) 2010 The Android Open Source Project
30f8a40e4cfdc5f6cd47c22e81f69ed0446067c54Andrew Hsieh *
40f8a40e4cfdc5f6cd47c22e81f69ed0446067c54Andrew Hsieh * Licensed under the Apache License, Version 2.0 (the "License");
50f8a40e4cfdc5f6cd47c22e81f69ed0446067c54Andrew Hsieh * you may not use this file except in compliance with the License.
60f8a40e4cfdc5f6cd47c22e81f69ed0446067c54Andrew Hsieh * You may obtain a copy of the License at
70f8a40e4cfdc5f6cd47c22e81f69ed0446067c54Andrew Hsieh *
80f8a40e4cfdc5f6cd47c22e81f69ed0446067c54Andrew Hsieh *      http://www.apache.org/licenses/LICENSE-2.0
90f8a40e4cfdc5f6cd47c22e81f69ed0446067c54Andrew Hsieh *
100f8a40e4cfdc5f6cd47c22e81f69ed0446067c54Andrew Hsieh * Unless required by applicable law or agreed to in writing, software
110f8a40e4cfdc5f6cd47c22e81f69ed0446067c54Andrew Hsieh * distributed under the License is distributed on an "AS IS" BASIS,
120f8a40e4cfdc5f6cd47c22e81f69ed0446067c54Andrew Hsieh * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
130f8a40e4cfdc5f6cd47c22e81f69ed0446067c54Andrew Hsieh * See the License for the specific language governing permissions and
140f8a40e4cfdc5f6cd47c22e81f69ed0446067c54Andrew Hsieh * limitations under the License.
150f8a40e4cfdc5f6cd47c22e81f69ed0446067c54Andrew Hsieh */
160f8a40e4cfdc5f6cd47c22e81f69ed0446067c54Andrew Hsieh
170f8a40e4cfdc5f6cd47c22e81f69ed0446067c54Andrew Hsiehpackage com.android.photoeditor.filters;
180f8a40e4cfdc5f6cd47c22e81f69ed0446067c54Andrew Hsieh
190f8a40e4cfdc5f6cd47c22e81f69ed0446067c54Andrew Hsiehimport android.graphics.Bitmap;
200f8a40e4cfdc5f6cd47c22e81f69ed0446067c54Andrew Hsiehimport android.graphics.PointF;
210f8a40e4cfdc5f6cd47c22e81f69ed0446067c54Andrew Hsieh
220f8a40e4cfdc5f6cd47c22e81f69ed0446067c54Andrew Hsieh
230f8a40e4cfdc5f6cd47c22e81f69ed0446067c54Andrew Hsieh/**
240f8a40e4cfdc5f6cd47c22e81f69ed0446067c54Andrew Hsieh * Image utilities that calls to JNI methods for image processing.
250f8a40e4cfdc5f6cd47c22e81f69ed0446067c54Andrew Hsieh */
260f8a40e4cfdc5f6cd47c22e81f69ed0446067c54Andrew Hsiehpublic class ImageUtils {
270f8a40e4cfdc5f6cd47c22e81f69ed0446067c54Andrew Hsieh
280f8a40e4cfdc5f6cd47c22e81f69ed0446067c54Andrew Hsieh    static {
290f8a40e4cfdc5f6cd47c22e81f69ed0446067c54Andrew Hsieh        System.loadLibrary("jni_photoeditor");
300f8a40e4cfdc5f6cd47c22e81f69ed0446067c54Andrew Hsieh    }
310f8a40e4cfdc5f6cd47c22e81f69ed0446067c54Andrew Hsieh
322c18ea2753707ff9b5e1c6ad18d025ff3cef374cAndrew Hsieh    public static native boolean gdk();
330f8a40e4cfdc5f6cd47c22e81f69ed0446067c54Andrew Hsieh    public static native boolean init(byte[] pgm, int pgmLength);
340f8a40e4cfdc5f6cd47c22e81f69ed0446067c54Andrew Hsieh
350f8a40e4cfdc5f6cd47c22e81f69ed0446067c54Andrew Hsieh    public static native void nativeBacklight(Bitmap src, Bitmap dst, float backlight);
360f8a40e4cfdc5f6cd47c22e81f69ed0446067c54Andrew Hsieh    public static native void nativeBlur(Bitmap src, Bitmap dst, float scale);
370f8a40e4cfdc5f6cd47c22e81f69ed0446067c54Andrew Hsieh    public static native void nativeColorTemp(Bitmap src, Bitmap dst, float scale);
380f8a40e4cfdc5f6cd47c22e81f69ed0446067c54Andrew Hsieh    public static native void nativeCopy(Bitmap src, Bitmap dst);
390f8a40e4cfdc5f6cd47c22e81f69ed0446067c54Andrew Hsieh    public static native void nativeCrossProcess(Bitmap src, Bitmap dst);
400f8a40e4cfdc5f6cd47c22e81f69ed0446067c54Andrew Hsieh    public static native void nativeDuotone(Bitmap src, Bitmap dst, int firstColor,
410f8a40e4cfdc5f6cd47c22e81f69ed0446067c54Andrew Hsieh            int secondColor);
420f8a40e4cfdc5f6cd47c22e81f69ed0446067c54Andrew Hsieh    public static native void nativeFisheye(Bitmap src, Bitmap dst, float focusX,
430f8a40e4cfdc5f6cd47c22e81f69ed0446067c54Andrew Hsieh            float focusY, float scale);
440f8a40e4cfdc5f6cd47c22e81f69ed0446067c54Andrew Hsieh    public static native void nativeFlipBoth(Bitmap src, Bitmap dst);
450f8a40e4cfdc5f6cd47c22e81f69ed0446067c54Andrew Hsieh    public static native void nativeFlipHorizontal(Bitmap src, Bitmap dst);
460f8a40e4cfdc5f6cd47c22e81f69ed0446067c54Andrew Hsieh    public static native void nativeFlipVertical(Bitmap src, Bitmap dst);
470f8a40e4cfdc5f6cd47c22e81f69ed0446067c54Andrew Hsieh    public static native void nativeGrain(Bitmap src, Bitmap dst, float scale);
480f8a40e4cfdc5f6cd47c22e81f69ed0446067c54Andrew Hsieh    public static native void nativeGrayscale(Bitmap src, Bitmap dst, float scale);
490f8a40e4cfdc5f6cd47c22e81f69ed0446067c54Andrew Hsieh    public static native void nativeHEQ(Bitmap src, Bitmap dst, float scale);
500f8a40e4cfdc5f6cd47c22e81f69ed0446067c54Andrew Hsieh    public static native void nativeNegative(Bitmap src, Bitmap dst);
510f8a40e4cfdc5f6cd47c22e81f69ed0446067c54Andrew Hsieh    public static native void nativeQuantize(Bitmap src, Bitmap dst);
520f8a40e4cfdc5f6cd47c22e81f69ed0446067c54Andrew Hsieh    public static native void nativeRedEye(Bitmap src, Bitmap dst, PointF[] redeyes,
530f8a40e4cfdc5f6cd47c22e81f69ed0446067c54Andrew Hsieh            float radius, float intensity);
540f8a40e4cfdc5f6cd47c22e81f69ed0446067c54Andrew Hsieh    public static native void nativeSaturation(Bitmap src, Bitmap dst, float scale);
550f8a40e4cfdc5f6cd47c22e81f69ed0446067c54Andrew Hsieh    public static native void nativeSepia(Bitmap src, Bitmap dst);
560f8a40e4cfdc5f6cd47c22e81f69ed0446067c54Andrew Hsieh    public static native void nativeSharpen(Bitmap src, Bitmap dst, float scale);
570f8a40e4cfdc5f6cd47c22e81f69ed0446067c54Andrew Hsieh    public static native void nativeTint(Bitmap src, Bitmap dst, int tint);
580f8a40e4cfdc5f6cd47c22e81f69ed0446067c54Andrew Hsieh    public static native void nativeVignetting(Bitmap src, Bitmap dst, float range);
590f8a40e4cfdc5f6cd47c22e81f69ed0446067c54Andrew Hsieh    public static native void nativeWarmify(Bitmap src, Bitmap dst);
600f8a40e4cfdc5f6cd47c22e81f69ed0446067c54Andrew Hsieh    public static native void nativeWhiteBlack(Bitmap src, Bitmap dst, float white, float black);
610f8a40e4cfdc5f6cd47c22e81f69ed0446067c54Andrew Hsieh}
62