2010-02-05 175 views
1

如果任何人知道的方式,當畫面中剪貼板複製檢測,然後執行以下時,它發生了,我想知道一個GIF/PNG:轉換剪貼板到時剪貼板中包含圖片

  • 轉換此圖片成GIF/PNG
  • 然後放回到該壓縮圖片到剪貼板

我問其原因,就是我們常貼截圖複製到用戶並粘貼在Lotus。出於某種原因,將圖片直接粘貼到Lotus上可以製作更大的電子郵件,而不是將Paint保存爲GIF,從GIF複製,然後粘貼到Lotus中。

我想比剪貼板不會存儲像素本身,但字面上知道採取的數據格式的對象。

如果我錯了,隨時糾正我!

編輯:

讀第一個回答後,我的問題是:「我怎麼能,每一個畫面是在剪貼板時,壓縮它,並把它放回剪貼板?」

回答

1

假設這是在Windows上,剪貼板stores the image以非壓縮形式。 GIF是一種壓縮的圖像文件格式,因此它會進行壓縮,這就是文件更小的原因。

+0

編輯我的問題:它會那麼......我怎麼能壓縮在飛行中的圖片時,它是從剪貼板中取出,並把它放回剪貼板 – BlueTrin 2010-02-05 11:32:03

0

如果您只是在尋找Lotus Notes解決方案,具體取決於您正在運行的是哪個版本的Lotus Notes,那麼首選項爲「壓縮粘貼到文檔中的圖像」。我想認爲在8.0版本,但我可能是錯的。除此之外,我不知道你可以使用什麼。

我剛剛做了一個測試,將屏幕截圖粘貼到電子郵件草稿中,保存的草稿是124KB。將屏幕截圖粘貼到Paint中,並將其保存爲一個163KB的GIF文件。

+0

編輯:祝我們的蓮花車隊將更新客戶端,我們仍然在這裏使用Lotus:( – BlueTrin 2010-02-17 14:49:24

0

我使用下面的C#程序用於類似的目的。它將剪貼板保存到PNG文件中。然後我通過Gmail或其他方式上傳文件。

class Clip2Png { 
[System.STAThread] 
public static void Main(string[] args) { 
    if (args.Length != 1) { 
     System.Console.WriteLine("Usage: clip2png filename"); 
     return; 
    } 

    System.Windows.Forms.IDataObject lData = System.Windows.Forms.Clipboard.GetDataObject(); 
    if (lData == null || !lData.GetDataPresent(System.Windows.Forms.DataFormats.Bitmap)) { 
     System.Console.WriteLine("No image in clipboard"); 
     return; 
    } 

    System.Drawing.Image image = (System.Drawing.Image) 
      lData.GetData(System.Windows.Forms.DataFormats.Bitmap, true); 
    image.Save(args[0], System.Drawing.Imaging.ImageFormat.Png); 
} 
} 
+0

編輯,它會非常接近我想要的,除非我想將它放回剪貼板,你知道我該怎麼做嗎? – BlueTrin 2010-02-17 14:50:08

+0

請參閱@unwind answer - 剪貼板存儲DIB圖像,它是應用程序定義瞭如何處理剪貼板 - 例如,我的應用程序將其作爲PNG文件存儲爲最後一步 – agsamek 2010-02-17 15:37:27

+0

Lotus將其作爲未壓縮的圖像附加到它 您可以粘貼剪貼板的內容作爲GIF從任何應用程序到Lotus?我不這麼認爲。相反,您可以附加一個來自hdd的GIF文件,在這種情況下,Lotus會將其作爲GIF存儲在電子郵件中。 – agsamek 2010-02-17 15:43:40