Come si memorizza un'Immagine Bufferata negli Appunti di sistema?Copia BufferedImage negli appunti
risposta
Ecco il codice di lavoro tratto da here testati con successo
package org.life.java.so.questions;
/**
* @author Jigar
*/
import java.awt.*;
import java.awt.datatransfer.*;
import java.awt.image.*;
import java.io.*;
public class CopyImagetoClipBoard implements ClipboardOwner {
public CopyImagetoClipBoard() {
try {
Robot robot = new Robot();
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
Rectangle screen = new Rectangle(screenSize);
BufferedImage i = robot.createScreenCapture(screen);
TransferableImage trans = new TransferableImage(i);
Clipboard c = Toolkit.getDefaultToolkit().getSystemClipboard();
c.setContents(trans, this);
}
catch (AWTException x) {
x.printStackTrace();
System.exit(1);
}
}
public static void main(String[] arg) {
CopyImagetoClipBoard ci = new CopyImagetoClipBoard();
}
public void lostOwnership(Clipboard clip, Transferable trans) {
System.out.println("Lost Clipboard Ownership");
}
private class TransferableImage implements Transferable {
Image i;
public TransferableImage(Image i) {
this.i = i;
}
public Object getTransferData(DataFlavor flavor)
throws UnsupportedFlavorException, IOException {
if (flavor.equals(DataFlavor.imageFlavor) && i != null) {
return i;
}
else {
throw new UnsupportedFlavorException(flavor);
}
}
public DataFlavor[] getTransferDataFlavors() {
DataFlavor[] flavors = new DataFlavor[ 1 ];
flavors[ 0 ] = DataFlavor.imageFlavor;
return flavors;
}
public boolean isDataFlavorSupported(DataFlavor flavor) {
DataFlavor[] flavors = getTransferDataFlavors();
for (int i = 0; i < flavors.length; i++) {
if (flavor.equals(flavors[ i ])) {
return true;
}
}
return false;
}
}
}
codice di Jigar fa infatti memorizzare un BufferedImage negli appunti, anche se per essere precisi, si pone uno screen-capture di tutto lo schermo negli appunti.
Questo potrebbe o non potrebbe essere quello che cercavi. Nel caso in cui volessi copiare il tuo specifico BufferedImage
, per fare ciò, ho sostituito il costruttore dell'esempio di Jigar con un metodo copyImage()
.
public class CopyImagetoClipBoard implements ClipboardOwner
{
public void copyImage(BufferedImage bi)
{
TransferableImage trans = new TransferableImage(bi);
Clipboard c = Toolkit.getDefaultToolkit().getSystemClipboard();
c.setContents(trans, this);
}
Rimuovere il metodo main()
entro la sua classe anche.
È quindi possibile copiare il BufferedImage con codice come questo:
BufferedImage bim;
// set bim to your desired BufferedImage content
// ...
CopyImagetoClipBoard ci = new CopyImagetoClipBoard();
ci.copyImage(bim);
Roba buona, ma non c'è bisogno di creare una classe completamente nuova lì. –
Oh, aspetta. Non importa. Se qualcun altro ha pensato come me, nota che 'CopiaImagetoClipBoard' è un 'ClipboardOwner'. –
- 1. Copia l'immagine negli appunti
- 2. Copia negli appunti in Java
- 3. Elisp: copia buffer negli appunti
- 4. JavaFX TableView copia negli appunti
- 5. Copia negli appunti in Node.js?
- 6. WPF listbox copia negli appunti
- 7. Copia immagini javascript negli appunti
- 8. Copia il testo dell'area selezionata negli appunti
- 9. Datagrid WPF: copia ulteriori righe negli appunti
- 10. Copia immagine negli appunti in Android
- 11. Copia la console di debug negli appunti
- 12. Android Copia immagine negli appunti/clipdata
- 13. Copia negli appunti con javascript per PhoneGap
- 14. Copia un'immagine negli appunti utilizzando JavaScript/jquery
- 15. comando copia vim negli appunti/buffer
- 16. Copia l'immagine negli appunti in Python3
- 17. Copia array di byte negli appunti
- 18. Copia testo negli appunti (pasteboard) da UITextView via UIButton?
- 19. Perché Excel vba copia negli appunti in modo incoerente?
- 20. Copia di una chiave pubblica rsa negli appunti
- 21. Copia negli appunti che funziona anche su Mobile?
- 22. Copia il comando corrente al prompt di bash negli appunti
- 23. iPhone copia qualcosa negli Appunti tramite il codice
- 24. Copia il file dal volume TrueCrypt negli appunti?
- 25. Copia l'output di una variabile JavaScript negli Appunti
- 26. Le estensioni di Chrome supportano la copia dell'immagine negli appunti?
- 27. Copia testo da una finestra di Windows CMD negli appunti
- 28. Come creare "copia negli appunti" pulsante in html/javascript
- 29. WPF DataGrid, Copia negli Appunti dopo Ctrl + C, OnCopyingRowClipboardContent
- 30. Copia negli appunti su Windows Phone 8.1 apps
Si può ottenere via con il passare nulla, invece di un'implementazione di ClipboardOwner. –