How do I cut and paste a Java Image to a an external program like Microsoft Paint?
Created May 4, 2012
Sandip Chitale
As of today - no you can't :( in 100% pure Java. That is because of the following bug and other related bugs - http://developer.java.sun.com/developer/bugParade/bugs/4040183.html
You can do that using JNI though. It can be done on MS Windows platform using the following strategy -
Use the java.awt.image.PixelGrabber class to convert the Java Image into a DIB or BMP format array ( the formats used to transfer images on the MS Windows platform). Then pass it to the JNI function which use the following APIs -
OpenClipboard() EmptyClipboard() GlobalAlloc( buffer) GlobalLock( buffer) // copy image header and data to the buffer // you wil have to deal with byte and RGB pixel order here GlobalUnlock(buffer) SetClipboardData(buffer) CloseClipboard()