img
FIGURE 25-10
Using the Blur
filter with
ImageFilterDemo
newimgpixels has the difference between the center pixel and the surrounding average
added to it. This basically says that if a pixel is 30 brighter than its surroundings, make it
another 30 brighter. If, however, it is 10 darker, then make it another 10 darker. This tends
to accentuate edges while leaving smooth areas unchanged.
public class Sharpen extends Convolver {
private final int clamp(int c) {
return (c > 255 ? 255 : (c < 0 ? 0 : c));
}
public void convolve() {
int r0=0, g0=0, b0=0;
for(int y=1; y<height-1; y++) {
for(int x=1; x<width-1; x++) {
int rs = 0;
int gs = 0;
int bs = 0;
for(int k=-1; k<=1; k++) {
for(int j=-1; j<=1; j++) {
int rgb = imgpixels[(y+k)*width+x+j];
int r = (rgb >> 16) & 0xff;
int g = (rgb >> 8) & 0xff;
int b = rgb & 0xff;
if (j == 0 && k == 0) {
r0 = r;
Search WWH :
Custom Search
Previous Page
Java SE 6 Topic Index
Next Page
Java SE 6 Bookmarks
Home