Bir BufferedImage'i sistem panosuna nasıl depolarım? İşteKopyala BufferedImage panama kopyalamak
cevap
çalışma kod here alınır test başarıyla
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;
}
}
}
belirli olması için, panoya içine tüm ekranı bir ekran yakalama koyar rağmen aslında panoya içine bir BufferedImage depolamak yok jigar kanunu.
Bu, peşinde olduğunuz şey olabilir veya olmayabilir. Bunu yapmak için kendi özel BufferedImage
'u kopyalamak istediğinizde, Jigar'ın örneğinden yapıcıyı copyImage()
yöntemiyle değiştirdim.
public class CopyImagetoClipBoard implements ClipboardOwner
{
public void copyImage(BufferedImage bi)
{
TransferableImage trans = new TransferableImage(bi);
Clipboard c = Toolkit.getDefaultToolkit().getSystemClipboard();
c.setContents(trans, this);
}
de onun sınıf içindeki
main()
yöntemi çıkarın.
Ardından bu gibi kodla BufferedImage kopyalayabilirsiniz:
BufferedImage bim;
// set bim to your desired BufferedImage content
// ...
CopyImagetoClipBoard ci = new CopyImagetoClipBoard();
ci.copyImage(bim);
İyi şeyler, ama orada yepyeni bir sınıf yaratmaya gerek yok. –
Oh, bekle. Boşver. Birisi benim gibi düşünürse, 'CopyImagetoClipBoard'' ClipboardOwner' olduğunu unutmayın. –
- 1. BufferedImage
- 2. Görüntüyü panoya kopyala
- 3. Java BufferedImage atma NullPointerException
- 4. Java'da BMP'ye BufferedImage
- 5. Java BufferedImage çözünürlüğü
- 6. BufferedImage renk doygunluğu
- 7. BufferedImage to Bytes Java
- 8. Kopyalama alanı panoya kopyala
- 9. SVN Gövdeyi Şube'ye Kopyala, Gövde Klasörünü Çok Kopyala?
- 10. Kopyala Komple Webbrowser öğesi?
- 11. Bir BufferedImage ölçeğini nasıl ölçeklendiririm
- 12. Kopyala ve orijinal dosyayı
- 13. Kopyala Laravel ile yeniden adlandırma
- 14. Görüntüyü Panoya kopyala Python3
- 15. Hata ayıklama konsolu panoya kopyala
- 16. Windows Batch Dosyaya kopyala Dosya adı
- 17. Kopyala yapıştır
- 18. KOPYA komutu: yalnızca belirli sütunları kopyala csv
- 19. Emacs as Finder/Explorer - dosyaları kopyala
- 20. Android TextView ile Kopyala ve Yapıştır
- 21. Kullanıcı-kopyasını hala kopyaya kopyala
- 22. Bir BufferedImage öğesinde birden fazla çizgi çizmek
- 23. BufferedImage üreten Tamam siyah arka plan
- 24. Bir BufferedImage üzerinde pikselin rengini alın
- 25. alt yapı çocuğa döküm - BufferedImage nesnesi
- 26. Kopyala Hücre verileri excel kelimesine VBA
- 27. Çoklu URL'ler Kaynaklar/Ağ sekmesinde kopyala
- 28. Metni Panoya Kopyala UITextView UIButton üzerinden mi?
- 29. JAXB: yalnızca nesne için gerekli özellikleri kopyala
- 30. Kopyala + bir Flex DataGrid denetiminden dışarı yapıştırma
uzaklara ClipboardOwner bir uygulama yerine boş geçirerek ile alabilirsiniz. –