/*
* HaoRan ImageFilter Classes v0.3
* Copyright (C) 2012 Zhenjun Dai
*
* This library is free software; you can redistribute it and/or modify it
* under the terms of the GNU Lesser General Public License as published by the
* Free Software Foundation; either version 2.1 of the License, or (at your
* option) any later version.
*
* This library is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
* for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with this library; if not, write to the Free Software Foundation.
*/
package com.marshalchen.common.uimodule.ImageFilter;
import android.graphics.Color;
public class RaiseFrameFilter implements IImageFilter{
int _size ;
public RaiseFrameFilter(int size)
{
_size = ((size >= 1) ? size : 1) ;
}
//@Override
public Image process(Image imageIn) {
int r, g, b, a = 20;
int width = imageIn.getWidth();
int height = imageIn.getHeight();
for(int x = 0 ; x < width ; x++){
for(int y = 0 ; y < height; y++){
r = imageIn.getRComponent(x, y);
g = imageIn.getGComponent(x, y);
b = imageIn.getBComponent(x, y);
int cr ;
if ((x < _size) && (y < height-x) && (y >= x))
cr = Color.rgb(255,255,65) ; // left
else if ((y < _size) && (x < width-y) && (x >= y))
cr = Color.rgb(255,255,120) ; // top
else if ((x >width-_size) && (y >= width-x) && (y < height+x-width))
cr = Color.rgb(0,0,65) ; // right
else if (y >height-_size)
cr = Color.rgb(0,0,120) ; // bottom
else
continue;
int colorR = cr & 0xFF0000 >> 16;
int colorG = cr & 0x00FF00 >> 8;
int colorB = cr & 0x0000FF;
int t = 0xFF - a ;
imageIn.setPixelColor(x, y, (colorR * a + r * t) / 0xFF, (colorG * a + g * t) / 0xFF, (colorB * a + b * t) / 0xFF);
}
}
return imageIn;
}
}