<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DZone Snippets: j2me code</title>
    <link>http://snippets.dzone.com/posts</link>
    <pubDate>Thu, 24 Jul 2008 07:07:16 GMT</pubDate>
    <description>DZone Snippets: j2me code</description>
    <item>
      <title>Sending/Receiving SMS from MIDlets</title>
      <link>http://snippets.dzone.com/posts/show/5115</link>
      <description>&lt;code&gt;&lt;br /&gt;// Lets send an SMS now.&lt;br /&gt;//get a reference to the appropriate Connection object using an appropriate url&lt;br /&gt;MessageConnection conn = (MessageConnection) Connector.open("sms://:50001");&lt;br /&gt;//generate a new text message&lt;br /&gt;TextMessage tmsg = (TextMessage) conn.newMessage(MessageConnection.TEXT_MESSAGE);&lt;br /&gt;//set the message text and the address&lt;br /&gt;tmsg.setPayloadText(message);&lt;br /&gt;tmsg.setAddress("sms://" + number);&lt;br /&gt;//finally send our message&lt;br /&gt;conn.send();&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;// Time to receive one.&lt;br /&gt;//get reference to MessageConnection object&lt;br /&gt;MessageConnection conn = (MessageConnection) Connector.open("sms://:50001");&lt;br /&gt;//set message listener&lt;br /&gt;conn.setMessageListener(&lt;br /&gt;   new MessageListener() {&lt;br /&gt;      public void notifyIncomingMessage(MessageConnection conn) {&lt;br /&gt;         Message msg = conn.receive();&lt;br /&gt;         //do whatever you want with the message&lt;br /&gt;         if(msg instanceof TextMessage) {&lt;br /&gt;            TextMessage tmsg = (TextMessage) msg;&lt;br /&gt;            System.out.println(tmsg.getPayloadText());&lt;br /&gt;         } else if(msg instanceof BinaryMessage) {&lt;br /&gt;            .....&lt;br /&gt;         } else {&lt;br /&gt;            ......&lt;br /&gt;         }&lt;br /&gt;      }&lt;br /&gt;   }&lt;br /&gt;);&lt;br /&gt;&lt;/code&gt;</description>
      <pubDate>Thu, 07 Feb 2008 11:44:56 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/5115</guid>
      <author>umut.utkan (Umut Utkan)</author>
    </item>
    <item>
      <title>J2ME - getIPdevice</title>
      <link>http://snippets.dzone.com/posts/show/3592</link>
      <description>// Retrevie IP device &lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;package org.socketdemo;&lt;br /&gt;&lt;br /&gt;import javax.microedition.io.Connector;&lt;br /&gt;import javax.microedition.io.SocketConnection;&lt;br /&gt;import javax.microedition.lcdui.Alert;&lt;br /&gt;import javax.microedition.lcdui.AlertType;&lt;br /&gt;import javax.microedition.lcdui.Command;&lt;br /&gt;import javax.microedition.lcdui.CommandListener;&lt;br /&gt;import javax.microedition.lcdui.Display;&lt;br /&gt;import javax.microedition.lcdui.Displayable;&lt;br /&gt;import javax.microedition.midlet.MIDlet;&lt;br /&gt;import javax.microedition.midlet.MIDletStateChangeException;&lt;br /&gt;&lt;br /&gt;public class SocketDEMO extends MIDlet implements CommandListener&lt;br /&gt;{&lt;br /&gt;	protected SocketDEMO midlet = this;&lt;br /&gt;	&lt;br /&gt;	private Alert info;&lt;br /&gt;	&lt;br /&gt;	protected void destroyApp(boolean value) throws MIDletStateChangeException&lt;br /&gt;	{&lt;br /&gt;		notifyDestroyed();&lt;br /&gt;	}&lt;br /&gt;&lt;br /&gt;	protected void pauseApp()&lt;br /&gt;	{&lt;br /&gt;&lt;br /&gt;	}&lt;br /&gt;&lt;br /&gt;	protected void startApp() throws MIDletStateChangeException&lt;br /&gt;	{&lt;br /&gt;		new Thread()&lt;br /&gt;		{&lt;br /&gt;			public void run()&lt;br /&gt;			{&lt;br /&gt;				SocketConnection socket = null;&lt;br /&gt;				&lt;br /&gt;				try&lt;br /&gt;				{&lt;br /&gt;					socket = (SocketConnection) Connector.open("socket://193.204.114.233:13");&lt;br /&gt;					&lt;br /&gt;					socket.openInputStream();&lt;br /&gt;					&lt;br /&gt;					info = new Alert("Info", "Current IP: " + socket.getLocalAddress() + "\nPort: " + socket.getLocalPort(), null, AlertType.INFO);&lt;br /&gt;					info.setTimeout(Alert.FOREVER);&lt;br /&gt;					info.setCommandListener(midlet);&lt;br /&gt;					&lt;br /&gt;					getDisplay().setCurrent(info);&lt;br /&gt;				}&lt;br /&gt;				catch(Exception error)&lt;br /&gt;				{&lt;br /&gt;					info = new Alert("Info", "Current IP: N/A\nPort: N/A", null, AlertType.INFO);&lt;br /&gt;					info.setTimeout(Alert.FOREVER);&lt;br /&gt;					info.setCommandListener(midlet);&lt;br /&gt;					&lt;br /&gt;					getDisplay().setCurrent(info);&lt;br /&gt;				}&lt;br /&gt;				finally&lt;br /&gt;				{&lt;br /&gt;					if(socket != null)&lt;br /&gt;					{&lt;br /&gt;						try&lt;br /&gt;						{&lt;br /&gt;							socket.close();&lt;br /&gt;						}&lt;br /&gt;						catch(Exception error)&lt;br /&gt;						{&lt;br /&gt;							&lt;br /&gt;						}&lt;br /&gt;					}&lt;br /&gt;				}&lt;br /&gt;			}&lt;br /&gt;		}.start();&lt;br /&gt;	}&lt;br /&gt;	&lt;br /&gt;	protected Display getDisplay()&lt;br /&gt;	{&lt;br /&gt;		return Display.getDisplay(this);&lt;br /&gt;	}&lt;br /&gt;&lt;br /&gt;	public void commandAction(Command cmd, Displayable dsp)&lt;br /&gt;	{&lt;br /&gt;		if(cmd == Alert.DISMISS_COMMAND)&lt;br /&gt;		{&lt;br /&gt;			try&lt;br /&gt;			{&lt;br /&gt;				destroyApp(true);&lt;br /&gt;			}&lt;br /&gt;			catch(MIDletStateChangeException error)&lt;br /&gt;			{&lt;br /&gt;			&lt;br /&gt;			}&lt;br /&gt;		}&lt;br /&gt;	}&lt;br /&gt;}&lt;br /&gt;&lt;/code&gt;</description>
      <pubDate>Wed, 28 Feb 2007 00:15:46 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/3592</guid>
      <author>whitetiger ()</author>
    </item>
    <item>
      <title>J2ME - Alert Bloccante</title>
      <link>http://snippets.dzone.com/posts/show/3576</link>
      <description>// description of your code here&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;import javax.microedition.lcdui.Alert;&lt;br /&gt;import javax.microedition.lcdui.AlertType;&lt;br /&gt;import javax.microedition.lcdui.Command;&lt;br /&gt;import javax.microedition.lcdui.CommandListener;&lt;br /&gt;import javax.microedition.lcdui.Displayable;&lt;br /&gt;&lt;br /&gt;public class MessageBox extends Alert implements CommandListener&lt;br /&gt;{&lt;br /&gt;	protected Chattando midlet;&lt;br /&gt;	&lt;br /&gt;	private boolean isReady = false;&lt;br /&gt;	&lt;br /&gt;	private Displayable dspBACK;&lt;br /&gt;	&lt;br /&gt;	public MessageBox(String title, String text, AlertType type, Chattando midlet)&lt;br /&gt;	{&lt;br /&gt;		super(title, text, null, type);&lt;br /&gt;		&lt;br /&gt;		this.midlet = midlet;&lt;br /&gt;		&lt;br /&gt;		this.setCommandListener(this);&lt;br /&gt;		this.setTimeout(Alert.FOREVER);&lt;br /&gt;		&lt;br /&gt;		// Display Precedente&lt;br /&gt;		dspBACK = midlet.getDisplay().getCurrent();&lt;br /&gt;		&lt;br /&gt;		// Mostra l'alert&lt;br /&gt;		midlet.getDisplay().setCurrent(this);&lt;br /&gt;		&lt;br /&gt;		// Attendi la conferma di chiusura&lt;br /&gt;		waitForDone();&lt;br /&gt;		&lt;br /&gt;		// Visualizza il precedente Display&lt;br /&gt;		midlet.getDisplay().setCurrent(dspBACK);&lt;br /&gt;	}&lt;br /&gt;	&lt;br /&gt;	private void waitForDone()&lt;br /&gt;	{&lt;br /&gt;		try&lt;br /&gt;		{&lt;br /&gt;			while(!isReady)&lt;br /&gt;			{&lt;br /&gt;				synchronized(this)&lt;br /&gt;				{&lt;br /&gt;					this.wait();&lt;br /&gt;					&lt;br /&gt;				}&lt;br /&gt;			}&lt;br /&gt;		}&lt;br /&gt;		catch(Exception error)&lt;br /&gt;		{&lt;br /&gt;			&lt;br /&gt;		}&lt;br /&gt;	}&lt;br /&gt;&lt;br /&gt;	public void commandAction(Command cmd, Displayable dsp)&lt;br /&gt;	{&lt;br /&gt;		if(cmd == Alert.DISMISS_COMMAND)&lt;br /&gt;		{&lt;br /&gt;			isReady = true;&lt;br /&gt;			&lt;br /&gt;			synchronized(this)&lt;br /&gt;			{&lt;br /&gt;				this.notify();&lt;br /&gt;			}			&lt;br /&gt;		}&lt;br /&gt;	}&lt;br /&gt;}&lt;br /&gt;&lt;/code&gt;</description>
      <pubDate>Sat, 24 Feb 2007 14:20:02 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/3576</guid>
      <author>whitetiger ()</author>
    </item>
    <item>
      <title>J2ME - Create Service Bluetooth</title>
      <link>http://snippets.dzone.com/posts/show/3573</link>
      <description>// Create Service Bluetooth&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;import javax.bluetooth.DiscoveryAgent;&lt;br /&gt;import javax.bluetooth.LocalDevice;&lt;br /&gt;import javax.microedition.io.Connector;&lt;br /&gt;import javax.microedition.io.StreamConnection;&lt;br /&gt;import javax.microedition.io.StreamConnectionNotifier;&lt;br /&gt;&lt;br /&gt;public class ServerChat&lt;br /&gt;{&lt;br /&gt;	private static final String CHATTANDO_UUID = "A1A2A3A4A5A6A7A8A9A0B1B2B3B4B5B6";&lt;br /&gt;	private static final String CHATTANDO_SERVICE = "Chattando";&lt;br /&gt;	&lt;br /&gt;	private boolean isReady = false;&lt;br /&gt;	&lt;br /&gt;	private StreamConnection stream_connection;&lt;br /&gt;	private StreamConnectionNotifier stream_connection_notifier;&lt;br /&gt;	&lt;br /&gt;	public ServerChat()&lt;br /&gt;	{&lt;br /&gt;		startServerChatBluetooth();&lt;br /&gt;	}&lt;br /&gt;	&lt;br /&gt;	// Apre il servizio per la Chat&lt;br /&gt;	public void startServerChatBluetooth()&lt;br /&gt;	{&lt;br /&gt;		new Thread()&lt;br /&gt;		{&lt;br /&gt;			public void run()&lt;br /&gt;			{&lt;br /&gt;				try&lt;br /&gt;				{&lt;br /&gt;					LocalDevice.getLocalDevice().setDiscoverable(DiscoveryAgent.GIAC);&lt;br /&gt;				}&lt;br /&gt;				catch(Exception error)&lt;br /&gt;				{&lt;br /&gt;					error.printStackTrace();&lt;br /&gt;				}&lt;br /&gt;				&lt;br /&gt;				try&lt;br /&gt;				{&lt;br /&gt;					stream_connection_notifier = (StreamConnectionNotifier) Connector.open("btspp://localhost:" + CHATTANDO_UUID + ";name=" + CHATTANDO_SERVICE);&lt;br /&gt;				}&lt;br /&gt;				catch(Exception error)&lt;br /&gt;				{&lt;br /&gt;					error.printStackTrace();&lt;br /&gt;				}&lt;br /&gt;				&lt;br /&gt;				stopServerChatBluetooth();&lt;br /&gt;				&lt;br /&gt;				// Mette in ascolto il Server della Chat&lt;br /&gt;				isReady = true;&lt;br /&gt;				&lt;br /&gt;				try&lt;br /&gt;				{&lt;br /&gt;					while(isReady)&lt;br /&gt;					{&lt;br /&gt;						System.out.println("Sono in ascolto...");&lt;br /&gt;						&lt;br /&gt;						stream_connection = stream_connection_notifier.acceptAndOpen();&lt;br /&gt;						&lt;br /&gt;						System.out.println("Client Connected");&lt;br /&gt;					}&lt;br /&gt;				}&lt;br /&gt;				catch(Exception error)&lt;br /&gt;				{&lt;br /&gt;					error.printStackTrace();&lt;br /&gt;				}&lt;br /&gt;			}&lt;br /&gt;			&lt;br /&gt;		}.start();&lt;br /&gt;	}&lt;br /&gt;&lt;br /&gt;	// Chiude il servizio per la Chat&lt;br /&gt;	public void stopServerChatBluetooth()&lt;br /&gt;	{&lt;br /&gt;		if(isReady)&lt;br /&gt;		{&lt;br /&gt;			isReady = false;&lt;br /&gt;			&lt;br /&gt;			try&lt;br /&gt;			{&lt;br /&gt;				stream_connection_notifier.close();&lt;br /&gt;			}&lt;br /&gt;			catch(Exception error)&lt;br /&gt;			{&lt;br /&gt;				error.printStackTrace();&lt;br /&gt;			}&lt;br /&gt;		}&lt;br /&gt;	}&lt;br /&gt;}&lt;br /&gt;&lt;/code&gt;</description>
      <pubDate>Fri, 23 Feb 2007 14:22:23 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/3573</guid>
      <author>whitetiger ()</author>
    </item>
    <item>
      <title>J2ME - Search Service Bluetooth</title>
      <link>http://snippets.dzone.com/posts/show/3572</link>
      <description>// Example Search Service Bluetooth&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;import java.util.Vector;&lt;br /&gt;&lt;br /&gt;import javax.bluetooth.DeviceClass;&lt;br /&gt;import javax.bluetooth.DiscoveryAgent;&lt;br /&gt;import javax.bluetooth.DiscoveryListener;&lt;br /&gt;import javax.bluetooth.LocalDevice;&lt;br /&gt;import javax.bluetooth.RemoteDevice;&lt;br /&gt;import javax.bluetooth.ServiceRecord;&lt;br /&gt;import javax.bluetooth.UUID;&lt;br /&gt;&lt;br /&gt;public class ClientChat implements DiscoveryListener&lt;br /&gt;{&lt;br /&gt;	private static final String CHATTANDO_UUID = "A1A2A3A4A5A6A7A8A9A0B1B2B3B4B5B6";&lt;br /&gt;	private static final String CHATTANDO_SERVICE = "Chattando";&lt;br /&gt;&lt;br /&gt;	protected Chattando midlet;&lt;br /&gt;	&lt;br /&gt;	private boolean searchDone = false;&lt;br /&gt;	&lt;br /&gt;	private DiscoveryAgent discovery_agent;&lt;br /&gt;	&lt;br /&gt;	private Vector remote_device;&lt;br /&gt;	private Vector device_found;&lt;br /&gt;	&lt;br /&gt;	public ClientChat(Chattando midlet)&lt;br /&gt;	{&lt;br /&gt;		this.midlet = midlet;&lt;br /&gt;		&lt;br /&gt;		startScanBluetoothDevices();&lt;br /&gt;	}&lt;br /&gt;	&lt;br /&gt;	// Avvia la ricerca dei dispositivi Bluetooth&lt;br /&gt;	public void startScanBluetoothDevices()&lt;br /&gt;	{&lt;br /&gt;		try&lt;br /&gt;		{&lt;br /&gt;			remote_device = new Vector();&lt;br /&gt;			device_found = new Vector();&lt;br /&gt;			&lt;br /&gt;			discovery_agent = LocalDevice.getLocalDevice().getDiscoveryAgent();&lt;br /&gt;			discovery_agent.startInquiry(DiscoveryAgent.GIAC, this);&lt;br /&gt;		}&lt;br /&gt;		catch(Exception error)&lt;br /&gt;		{&lt;br /&gt;			error.printStackTrace();&lt;br /&gt;		}&lt;br /&gt;	}&lt;br /&gt;	&lt;br /&gt;	// Stoppa la ricerca dei dispositivi Bluetooth&lt;br /&gt;	public void stopScanBluetoothDevices()&lt;br /&gt;	{&lt;br /&gt;		discovery_agent.cancelInquiry(this);&lt;br /&gt;	}&lt;br /&gt;&lt;br /&gt;	public void deviceDiscovered(RemoteDevice btDevice, DeviceClass cod) &lt;br /&gt;	{&lt;br /&gt;		// Aggiungo il dispositivo solo se e' un computer (0x0100) o un cellulare (0x0200)&lt;br /&gt;		if(cod.getMajorDeviceClass() == 0x0100 || cod.getMajorDeviceClass() == 0x0200)&lt;br /&gt;			remote_device.addElement(btDevice);&lt;br /&gt;	}&lt;br /&gt;&lt;br /&gt;	public void inquiryCompleted(int discType)&lt;br /&gt;	{&lt;br /&gt;		switch(discType)&lt;br /&gt;		{&lt;br /&gt;			case DiscoveryListener.INQUIRY_COMPLETED:&lt;br /&gt;														System.out.println("Device Search Completed");&lt;br /&gt;														&lt;br /&gt;														break;&lt;br /&gt;				&lt;br /&gt;			case DiscoveryListener.INQUIRY_ERROR:&lt;br /&gt;														System.out.println("Device Search Error");&lt;br /&gt;														&lt;br /&gt;														break;&lt;br /&gt;				&lt;br /&gt;			case DiscoveryListener.INQUIRY_TERMINATED:&lt;br /&gt;														System.out.println("Device Search Terminated");&lt;br /&gt;														&lt;br /&gt;														break;&lt;br /&gt;		}&lt;br /&gt;		&lt;br /&gt;		try&lt;br /&gt;		{&lt;br /&gt;			for(int i=0, cnt=remote_device.size(); i&lt;cnt; i++)&lt;br /&gt;			{&lt;br /&gt;				discovery_agent.searchServices(new int[]{ 0x0100, 0x0200 }, new UUID[]{ new UUID(0x0003), new UUID(CHATTANDO_UUID, false) }, (RemoteDevice) remote_device.elementAt(i), this);&lt;br /&gt;				waitForSearchDone();&lt;br /&gt;			}&lt;br /&gt;		}&lt;br /&gt;		catch(Exception error)&lt;br /&gt;		{&lt;br /&gt;			error.printStackTrace();&lt;br /&gt;		}&lt;br /&gt;	}&lt;br /&gt;&lt;br /&gt;	// Aspetta che la ricerca dei servizi per il dispositivo sia terminata&lt;br /&gt;	private void waitForSearchDone()&lt;br /&gt;	{&lt;br /&gt;		searchDone = false;&lt;br /&gt;		&lt;br /&gt;		try&lt;br /&gt;		{&lt;br /&gt;			while(!searchDone)&lt;br /&gt;			{&lt;br /&gt;				synchronized(this)&lt;br /&gt;				{&lt;br /&gt;					this.wait();&lt;br /&gt;				}&lt;br /&gt;			}&lt;br /&gt;		}&lt;br /&gt;		catch(Exception error)&lt;br /&gt;		{&lt;br /&gt;			&lt;br /&gt;		}&lt;br /&gt;	}&lt;br /&gt;	&lt;br /&gt;	public void serviceSearchCompleted(int transID, int respCode)&lt;br /&gt;	{&lt;br /&gt;		switch(respCode)&lt;br /&gt;		{&lt;br /&gt;			case DiscoveryListener.SERVICE_SEARCH_COMPLETED:&lt;br /&gt;																		System.out.println("Service Search Completed");&lt;br /&gt;																		&lt;br /&gt;																		break;&lt;br /&gt;				&lt;br /&gt;			case DiscoveryListener.SERVICE_SEARCH_DEVICE_NOT_REACHABLE:&lt;br /&gt;																		System.out.println("Service Search Device not Reachable");&lt;br /&gt;																		&lt;br /&gt;																		break;&lt;br /&gt;				&lt;br /&gt;			case DiscoveryListener.SERVICE_SEARCH_ERROR:&lt;br /&gt;																		System.out.println("Service Search Error");&lt;br /&gt;																		&lt;br /&gt;																		break;&lt;br /&gt;				&lt;br /&gt;			case DiscoveryListener.SERVICE_SEARCH_NO_RECORDS:&lt;br /&gt;																		System.out.println("Service Search No Records");&lt;br /&gt;																		&lt;br /&gt;																		break;&lt;br /&gt;				&lt;br /&gt;			case DiscoveryListener.SERVICE_SEARCH_TERMINATED:&lt;br /&gt;																		System.out.println("Service Search Terminated");&lt;br /&gt;																		&lt;br /&gt;																		break;&lt;br /&gt;		}&lt;br /&gt;		&lt;br /&gt;		searchDone = true;&lt;br /&gt;		&lt;br /&gt;		// Risveglia il processo in attesa del completamento della ricerca dei servizi per un dispositivo&lt;br /&gt;		synchronized(this)&lt;br /&gt;		{&lt;br /&gt;			this.notifyAll();&lt;br /&gt;		}&lt;br /&gt;	}&lt;br /&gt;&lt;br /&gt;	public void servicesDiscovered(int transID, ServiceRecord[] servRecord)&lt;br /&gt;	{&lt;br /&gt;		for(int i=0, cnt=servRecord.length; i&lt;cnt; i++)&lt;br /&gt;		{&lt;br /&gt;			if(((String) servRecord[i].getAttributeValue(0x0100).getValue()).equalsIgnoreCase(CHATTANDO_SERVICE))&lt;br /&gt;			{&lt;br /&gt;				device_found.addElement(servRecord[i].getHostDevice());&lt;br /&gt;			}&lt;br /&gt;		}&lt;br /&gt;	}&lt;br /&gt;}&lt;br /&gt;&lt;/code&gt;</description>
      <pubDate>Fri, 23 Feb 2007 14:21:30 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/3572</guid>
      <author>whitetiger ()</author>
    </item>
    <item>
      <title>J2ME - Rescale Image</title>
      <link>http://snippets.dzone.com/posts/show/3257</link>
      <description>// description of your code here&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;private Image rescaleImage(Image image, int width, int height)&lt;br /&gt;	{&lt;br /&gt;		int sourceWidth = image.getWidth();&lt;br /&gt;		int sourceHeight = image.getHeight();&lt;br /&gt;	&lt;br /&gt;		Image newImage = Image.createImage(width, height);&lt;br /&gt;		Graphics g = newImage.getGraphics();&lt;br /&gt;		&lt;br /&gt;		for(int y=0; y&lt;height; y++)&lt;br /&gt;		{&lt;br /&gt;			for(int x=0; x&lt;width; x++)&lt;br /&gt;			{&lt;br /&gt;				g.setClip(x, y, 1, 1);&lt;br /&gt;				int dx = x * sourceWidth / width;&lt;br /&gt;				int dy = y * sourceHeight / height;&lt;br /&gt;				g.drawImage(image, x-dx, y-dy, Graphics.LEFT | Graphics.TOP);&lt;br /&gt;			}&lt;br /&gt;		}&lt;br /&gt;		&lt;br /&gt;		return Image.createImage(newImage);&lt;br /&gt;	}&lt;br /&gt;&lt;/code&gt;</description>
      <pubDate>Tue, 09 Jan 2007 02:08:25 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/3257</guid>
      <author>whitetiger ()</author>
    </item>
    <item>
      <title>Java - Erode</title>
      <link>http://snippets.dzone.com/posts/show/2974</link>
      <description>// JAI Filter erode&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;public RenderedImage erode(BufferedImage img)&lt;br /&gt;	{&lt;br /&gt;		KernelJAI kernel = new KernelJAI(7, 7, new float[]{&lt;br /&gt;															0, 0, 0, 0, 0, 0, 0,&lt;br /&gt;															0, 1, 1, 1, 1, 1, 0,&lt;br /&gt;															0, 1, 1, 1, 1, 1, 0,&lt;br /&gt;															0, 1, 1, 1, 1, 1, 0,&lt;br /&gt;															0, 1, 1, 1, 1, 1, 0,&lt;br /&gt;															0, 1, 1, 1, 1, 1, 0,&lt;br /&gt;															0, 0, 0, 0, 0, 0, 0&lt;br /&gt;															});&lt;br /&gt;		ParameterBlock pb = new ParameterBlock();&lt;br /&gt;		pb.addSource(img);&lt;br /&gt;		pb.add(kernel);&lt;br /&gt;		&lt;br /&gt;		return JAI.create("erode", pb);&lt;br /&gt;	}&lt;br /&gt;&lt;/code&gt;</description>
      <pubDate>Sun, 05 Nov 2006 19:27:14 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/2974</guid>
      <author>whitetiger ()</author>
    </item>
    <item>
      <title>Java - subTraction</title>
      <link>http://snippets.dzone.com/posts/show/2973</link>
      <description>// Use JAI filter&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;public RenderedImage subTraction(BufferedImage img1, BufferedImage img2)&lt;br /&gt;	{&lt;br /&gt;		ParameterBlock pb = new ParameterBlock();&lt;br /&gt;		pb.addSource(img1);&lt;br /&gt;		pb.addSource(img2);&lt;br /&gt;		&lt;br /&gt;		return JAI.create("subtract", pb);&lt;br /&gt;	}&lt;br /&gt;&lt;/code&gt;</description>
      <pubDate>Sun, 05 Nov 2006 16:23:01 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/2973</guid>
      <author>whitetiger ()</author>
    </item>
    <item>
      <title>Java - showBitPlanes</title>
      <link>http://snippets.dzone.com/posts/show/2970</link>
      <description>// the input it must be a b/w image&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;public BufferedImage showBitPlanes(BufferedImage bi, int lv)&lt;br /&gt;	{&lt;br /&gt;		int level = 0;&lt;br /&gt;		&lt;br /&gt;		switch(level)&lt;br /&gt;		{&lt;br /&gt;			case 0:&lt;br /&gt;				level = 128;&lt;br /&gt;				break;&lt;br /&gt;			case 1:&lt;br /&gt;				level = 64;&lt;br /&gt;				break;&lt;br /&gt;			case 2:&lt;br /&gt;				level = 32;&lt;br /&gt;				break;&lt;br /&gt;			case 3:&lt;br /&gt;				level = 16;&lt;br /&gt;				break;&lt;br /&gt;			case 4:&lt;br /&gt;				level = 8;&lt;br /&gt;				break;&lt;br /&gt;			case 5:&lt;br /&gt;				level = 4;&lt;br /&gt;				break;&lt;br /&gt;			case 6:&lt;br /&gt;				level = 2;&lt;br /&gt;				break;&lt;br /&gt;			case 7:&lt;br /&gt;				level = 1;&lt;br /&gt;				break;&lt;br /&gt;			default:&lt;br /&gt;					return null;&lt;br /&gt;		}&lt;br /&gt;		&lt;br /&gt;		int width = bi.getWidth();&lt;br /&gt;		int height = bi.getHeight();&lt;br /&gt;		&lt;br /&gt;		BufferedImage img = new BufferedImage(width, height, bi.getType());&lt;br /&gt;		&lt;br /&gt;		for(int x=0; x&lt;width; x++)&lt;br /&gt;			for(int y=0; y&lt;height; y++)&lt;br /&gt;				img.setRGB(x, y, ((bi.getRGB(x, y) &amp; level)/level)*255);&lt;br /&gt;		&lt;br /&gt;		return img;&lt;br /&gt;	}&lt;br /&gt;&lt;/code&gt;</description>
      <pubDate>Sun, 05 Nov 2006 00:41:29 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/2970</guid>
      <author>whitetiger ()</author>
    </item>
    <item>
      <title>Java - Dilate3</title>
      <link>http://snippets.dzone.com/posts/show/2968</link>
      <description>// pixel before the filter&lt;br /&gt;// |--|--|--|&lt;br /&gt;// |  |  |  |&lt;br /&gt;// |--|--|--|&lt;br /&gt;// |  | *|  |&lt;br /&gt;// |--|--|--|&lt;br /&gt;// |  |  |  |&lt;br /&gt;// |--|--|--|&lt;br /&gt;&lt;br /&gt;// pixel after the filter&lt;br /&gt;// |--|--|--|&lt;br /&gt;// | *| *| *|&lt;br /&gt;// |--|--|--|&lt;br /&gt;// | *| *| *|&lt;br /&gt;// |--|--|--|&lt;br /&gt;// | *| *| *|&lt;br /&gt;// |--|--|--|&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;public BufferedImage dilate3(BufferedImage bi)&lt;br /&gt;	{&lt;br /&gt;		BufferedImage buff = new BufferedImage(bi.getWidth(), bi.getHeight(), bi.getType());&lt;br /&gt;		&lt;br /&gt;		Kernel kernel = new Kernel(3, 3, new float[] {&lt;br /&gt;														1f, 1f, 1f, &lt;br /&gt;														1f, 1f, 1f, &lt;br /&gt;														1f, 1f, 1f&lt;br /&gt;													 });&lt;br /&gt;		&lt;br /&gt;		ConvolveOp op = new ConvolveOp(kernel);&lt;br /&gt;		op.filter(bi, buff);&lt;br /&gt;		&lt;br /&gt;		return buff;&lt;br /&gt;	}&lt;br /&gt;&lt;/code&gt;</description>
      <pubDate>Sat, 04 Nov 2006 23:19:27 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/2968</guid>
      <author>whitetiger ()</author>
    </item>
  </channel>
</rss>
