public abstract class ImageFilter extends AbstractConfig implements AbstractConfig.ImageFilterInterface
| Modifier and Type | Class and Description |
|---|---|
static interface |
ImageFilter.FilterConfigIntensity
Implement this interface if a Filter has Intensity Control
|
AbstractConfig.AspectConfigInterface, AbstractConfig.BindData, AbstractConfig.ColorConfigInterface, AbstractConfig.ConfigViewHolder, AbstractConfig.FontConfigInterface<T>, AbstractConfig.ImageFilterInterface, AbstractConfig.StickerConfigInterface, AbstractConfig.ToolConfigInterface| Modifier and Type | Field and Description |
|---|---|
static java.lang.String |
DEFAULT_ATTRIB_POSITION |
static java.lang.String |
DEFAULT_ATTRIB_TEXTURE_COORDINATE |
static java.lang.String |
DEFAULT_UNIFORM_SAMPLER |
protected static java.lang.String |
DEFAULT_VERTEX_SHADER |
protected static java.lang.String |
TARGET_PLACEHOLDER |
protected static int |
VERTICES_DATA_POS_OFFSET |
protected static int |
VERTICES_DATA_POS_SIZE |
protected static int |
VERTICES_DATA_STRIDE_BYTES |
protected static int |
VERTICES_DATA_UV_OFFSET |
protected static int |
VERTICES_DATA_UV_SIZE |
isDirty, NO_THUMBNAIL_ID, ORIGINAL_THUMBNAIL_SIZE| Constructor and Description |
|---|
ImageFilter() |
ImageFilter(int name,
int drawableId) |
ImageFilter(int name,
int drawableId,
int vertexShaderSourceResId,
int fragmentShaderSourceResId) |
ImageFilter(int name,
int drawableId,
java.lang.String vertexShaderSource,
java.lang.String fragmentShaderSource) |
| Modifier and Type | Method and Description |
|---|---|
protected static java.lang.String |
createTargetShader(java.lang.String shader,
int texTarget) |
void |
draw(Texture texture,
float[] mvpMatrix,
float[] stMatrix,
float aspectRatio)
Draw texture in OpenGl Context
|
protected int |
getHandle(java.lang.String name) |
int |
getLayout()
Get the layout res id of the list item view.
|
android.graphics.Bitmap |
getThumbnailBitmap(int maxWidth)
Return the Thumbnail, do not call in Main Thread and use #getThumbnailResId() if #hasStaticThumbnail
|
boolean |
hasIntensityConfig()
Check if the Filter has Intensity Control
|
boolean |
hasStaticThumbnail()
Check if it has a static thumbnail drawable.
|
boolean |
isSelectable() |
protected void |
onDraw() |
void |
release()
Release the shader program and texture
|
protected void |
releaseProgram() |
android.graphics.Bitmap |
renderImage(android.graphics.Bitmap bitmap)
Apply the renderscript filter without intensity changes.
|
android.graphics.Bitmap |
renderImage(android.graphics.Bitmap bitmap,
float intensity)
Apply the renderscript filter with a specific intensity.
|
protected void |
setup(int textureTarget) |
protected void |
useProgram() |
createViewHolder, generateBindData, generateBindDataAsync, getName, getThumbnailBitmap, getThumbnailResId, getTitle, getVerticalLayout, isClickable, isDirty, setDirtyFlagclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitcreateViewHolder, generateBindData, generateBindDataAsync, getName, getVerticalLayout, isDirty, setDirtyFlagpublic static final java.lang.String DEFAULT_ATTRIB_POSITION
public static final java.lang.String DEFAULT_ATTRIB_TEXTURE_COORDINATE
public static final java.lang.String DEFAULT_UNIFORM_SAMPLER
protected static final java.lang.String DEFAULT_VERTEX_SHADER
protected static final java.lang.String TARGET_PLACEHOLDER
protected static final int VERTICES_DATA_POS_SIZE
protected static final int VERTICES_DATA_UV_SIZE
protected static final int VERTICES_DATA_STRIDE_BYTES
protected static final int VERTICES_DATA_POS_OFFSET
protected static final int VERTICES_DATA_UV_OFFSET
public ImageFilter()
public ImageFilter(@StringRes
int name,
@DrawableRes
int drawableId)
public ImageFilter(@StringRes
int name,
@DrawableRes
int drawableId,
@StringRes
int vertexShaderSourceResId,
@StringRes
int fragmentShaderSourceResId)
public ImageFilter(@StringRes
int name,
@DrawableRes
int drawableId,
java.lang.String vertexShaderSource,
java.lang.String fragmentShaderSource)
public android.graphics.Bitmap renderImage(android.graphics.Bitmap bitmap)
AbstractConfig.ImageFilterInterfacerenderImage in interface AbstractConfig.ImageFilterInterfacebitmap - the source image.public boolean isSelectable()
isSelectable in interface DataSourceInterface<AbstractConfig.BindData>protected static java.lang.String createTargetShader(@NonNull
java.lang.String shader,
int texTarget)
protected void setup(int textureTarget)
protected void releaseProgram()
public void release()
release in interface AbstractConfig.ImageFilterInterfacepublic void draw(@NonNull
Texture texture,
float[] mvpMatrix,
float[] stMatrix,
float aspectRatio)
AbstractConfig.ImageFilterInterfacedraw in interface AbstractConfig.ImageFilterInterfacetexture - the camera preview texturemvpMatrix - the camera source matrixstMatrix - the stage destination matrixaspectRatio - the camera image aspectpublic boolean hasIntensityConfig()
hasIntensityConfig in interface AbstractConfig.ImageFilterInterface@Nullable
public android.graphics.Bitmap renderImage(android.graphics.Bitmap bitmap,
float intensity)
AbstractConfig.ImageFilterInterfacerenderImage in interface AbstractConfig.ImageFilterInterfacebitmap - the source image.intensity - the filter intensityprotected void onDraw()
protected final void useProgram()
protected final int getHandle(java.lang.String name)
public int getLayout()
DataSourceInterfacegetLayout in interface DataSourceInterface<AbstractConfig.BindData>public boolean hasStaticThumbnail()
AbstractConfighasStaticThumbnail in class AbstractConfigAbstractConfig.getThumbnailBitmap()public android.graphics.Bitmap getThumbnailBitmap(int maxWidth)
AbstractConfiggetThumbnailBitmap in class AbstractConfigmaxWidth - Size the drawable should be limited to.