All pastes #824013 Raw Edit

aux

public text v1 · immutable
·published 2007-12-19 18:56 UTC
rendered paste body
package org.basic;

import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;

import javax.imageio.ImageIO;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;

public class BevelFilter extends JFrame
{

	private JLabel _label;
	private BufferedImage _image;
	
	public BevelFilter(String imageFileName)
	{
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		
		_label = new JLabel();
		try
		{
			_image = bevelize(ImageIO.read(new File(imageFileName)));
			
		} 
		catch (IOException e)
		{
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
		ImageIcon icon = new ImageIcon(_image);
		_label.setIcon(icon);
		add(_label);
		
		setVisible(true);
		pack();
		
		
	}
	
	public BufferedImage bevelize(BufferedImage img)
	{		
		// define filter kernel
		double[][] _kernel =	
		{ 
				{0.0,	1.0,	0.0},
				{1.0,	1.0,	1.0},
				{0.0,	1.0,	0.0}
		};
		
		double scale = 5.0;
		
		for (int y = 1; y < img.getHeight()-1; y++)
		{
			for (int x = 1; x < img.getWidth()-1; x++)
			{
				
				double sum = 0.0;
				for (int u = -1; u <= 1; u++)
				{
					for (int v = -1; v <= 1; v++)
					{
						double px = img.getRGB(x+v,y+u);
						double co = _kernel[u+1][v+1];
						
						sum = sum + co*px;
					}
				}
				
				sum /= scale;
				
				int rgb = (int)(Math.abs(sum));
				img.setRGB(x, y, rgb);
			}
		}
		return img;
		
	}
	
	public static void main(String[] args)
	{
		new BevelFilter("img.jpg");
	}
	
}