Search in sources :

Example 91 with Frame

use of android.filterfw.core.Frame in project android_frameworks_base by ResurrectionRemix.

the class DrawRectFilter method process.

@Override
public void process(FilterContext env) {
    // Get input frame
    Frame imageFrame = pullInput("image");
    Frame boxFrame = pullInput("box");
    // Get the box
    Quad box = (Quad) boxFrame.getObjectValue();
    box = box.scaled(2.0f).translated(-1.0f, -1.0f);
    // Create output frame with copy of input
    GLFrame output = (GLFrame) env.getFrameManager().duplicateFrame(imageFrame);
    // Draw onto output
    output.focus();
    renderBox(box);
    // Push output
    pushOutput("image", output);
    // Release pushed frame
    output.release();
}
Also used : Quad(android.filterfw.geometry.Quad) Frame(android.filterfw.core.Frame) GLFrame(android.filterfw.core.GLFrame) GLFrame(android.filterfw.core.GLFrame)

Example 92 with Frame

use of android.filterfw.core.Frame in project android_frameworks_base by ResurrectionRemix.

the class SaturateFilter method process.

@Override
public void process(FilterContext context) {
    // Get input frame
    Frame input = pullInput("image");
    FrameFormat inputFormat = input.getFormat();
    // Create program if not created already
    if (mBenProgram == null || inputFormat.getTarget() != mTarget) {
        initProgram(context, inputFormat.getTarget());
        initParameters();
    }
    // Create output frame
    Frame output = context.getFrameManager().newFrame(inputFormat);
    // Process
    if (mScale > 0.0f) {
        mHerfProgram.process(input, output);
    } else {
        mBenProgram.process(input, output);
    }
    // Push output
    pushOutput("image", output);
    // Release pushed frame
    output.release();
}
Also used : FrameFormat(android.filterfw.core.FrameFormat) Frame(android.filterfw.core.Frame)

Example 93 with Frame

use of android.filterfw.core.Frame in project android_frameworks_base by ResurrectionRemix.

the class ImageCombineFilter method process.

@Override
public void process(FilterContext context) {
    // Pull input frames
    int i = 0;
    Frame[] inputs = new Frame[mInputNames.length];
    for (String inputName : mInputNames) {
        inputs[i++] = pullInput(inputName);
    }
    // Create output frame
    Frame output = context.getFrameManager().newFrame(inputs[0].getFormat());
    // Make sure we have a program
    updateProgramWithTarget(inputs[0].getFormat().getTarget(), context);
    // Process
    mProgram.process(inputs, output);
    // Push output
    pushOutput(mOutputName, output);
    // Release pushed frame
    output.release();
}
Also used : Frame(android.filterfw.core.Frame)

Example 94 with Frame

use of android.filterfw.core.Frame in project android_frameworks_base by ResurrectionRemix.

the class ImageEncoder method process.

@Override
public void process(FilterContext env) {
    Frame input = pullInput("image");
    Bitmap bitmap = input.getBitmap();
    bitmap.compress(CompressFormat.JPEG, mQuality, mOutputStream);
}
Also used : Frame(android.filterfw.core.Frame) Bitmap(android.graphics.Bitmap)

Example 95 with Frame

use of android.filterfw.core.Frame in project android_frameworks_base by ResurrectionRemix.

the class ImageSlicer method process.

@Override
public void process(FilterContext context) {
    // Get input frame
    if (mSliceIndex == 0) {
        mOriginalFrame = pullInput("image");
        calcOutputFormatForInput(mOriginalFrame);
    }
    FrameFormat inputFormat = mOriginalFrame.getFormat();
    MutableFrameFormat outputFormat = inputFormat.mutableCopy();
    outputFormat.setDimensions(mOutputWidth, mOutputHeight);
    // Create output frame
    Frame output = context.getFrameManager().newFrame(outputFormat);
    // Create the program if not created already
    if (mProgram == null) {
        mProgram = ShaderProgram.createIdentity(context);
    }
    // Calculate the four corner of the source region
    int xSliceIndex = mSliceIndex % mXSlices;
    int ySliceIndex = mSliceIndex / mXSlices;
    // TODO(rslin) : not sure shifting by 0.5 is needed.
    float x0 = (xSliceIndex * mSliceWidth - mPadSize) / ((float) mInputWidth);
    float y0 = (ySliceIndex * mSliceHeight - mPadSize) / ((float) mInputHeight);
    ((ShaderProgram) mProgram).setSourceRect(x0, y0, ((float) mOutputWidth) / mInputWidth, ((float) mOutputHeight) / mInputHeight);
    // Process
    mProgram.process(mOriginalFrame, output);
    mSliceIndex++;
    if (mSliceIndex == mXSlices * mYSlices) {
        mSliceIndex = 0;
        mOriginalFrame.release();
        setWaitsOnInputPort("image", true);
    } else {
        // Retain the original frame so it can be used next time.
        mOriginalFrame.retain();
        setWaitsOnInputPort("image", false);
    }
    // Push output
    pushOutput("image", output);
    // Release pushed frame
    output.release();
}
Also used : FrameFormat(android.filterfw.core.FrameFormat) MutableFrameFormat(android.filterfw.core.MutableFrameFormat) Frame(android.filterfw.core.Frame) ShaderProgram(android.filterfw.core.ShaderProgram) MutableFrameFormat(android.filterfw.core.MutableFrameFormat)

Aggregations

Frame (android.filterfw.core.Frame)414 FrameFormat (android.filterfw.core.FrameFormat)198 GLFrame (android.filterfw.core.GLFrame)73 MutableFrameFormat (android.filterfw.core.MutableFrameFormat)47 NativeFrame (android.filterfw.core.NativeFrame)38 Quad (android.filterfw.geometry.Quad)24 GLEnvironment (android.filterfw.core.GLEnvironment)18 ShaderProgram (android.filterfw.core.ShaderProgram)18 ByteBuffer (java.nio.ByteBuffer)18 Point (android.filterfw.geometry.Point)12 IOException (java.io.IOException)12 FrameManager (android.filterfw.core.FrameManager)6 Bitmap (android.graphics.Bitmap)6 ByteArrayOutputStream (java.io.ByteArrayOutputStream)6 Map (java.util.Map)6 SortedMap (java.util.SortedMap)6 TreeMap (java.util.TreeMap)6 CachedFrameManager (android.filterfw.core.CachedFrameManager)1