当从Java剪贴板对象检索为图像时,outlook中的剪贴板副本始终具有黑色背景设置

时间:2013-04-12 17:01:13

标签: java image background clipboard bufferedimage

以下是申请步骤

  1. 从html电子邮件或网站(文本+图像的组合)复制一些richtext
  2. 在您的java代码中,检索从剪贴板对象复制的内容为BufferredImage
  3. 将检索到的图像对象保存为磁盘上的图像文件
  4. 您会注意到,在保存的文件中,图像正常,任何非黑色文本都显示正常,但黑色背景中的黑色文字似乎丢失。找不到覆盖生成图像的黑色背景的方法。下面是一些示例代码。

         BufferedImage image = null;
    try {
         image = (BufferedImage) transferable.getTransferData(DataFlavor.imageFlavor);
    
    } catch (UnsupportedFlavorException e) {
         // TODO Auto-generated catch block
         e.printStackTrace();
          } catch (IOException e) {
         // TODO Auto-generated catch block
         e.printStackTrace();
    }
    
    saveImageToDisk(image);
    
          private void saveImageToDisk(BufferedImage image) {
        File outputFile = new File("c:\\image.png");
        try {
            ImageIO.write(image, "png", outputFile);
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    
    }
    

    找到解决方案 - 使用自定义系统风格,它可以理解'image \ x-emf'的mimetype。剥离前8个字节并将剩余内容写为Bufferred图像

1 个答案:

答案 0 :(得分:2)

找到解决方案 - 使用自定义系统风格,它可以理解'image \ x-emf'的mimetype。剥离前8个字节并将剩余内容写为Bufferred图像