2010-05-24 64 views

Trả lời

56

Bạn cần sử dụng bộ mã hóa (lớp con của BitmapEncoder). Ví dụ, để lưu nó sang định dạng PNG, bạn làm điều gì đó như thế:

public static void SaveClipboardImageToFile(string filePath) 
{ 
    var image = Clipboard.GetImage(); 
    using (var fileStream = new FileStream(filePath, FileMode.Create)) 
    { 
     BitmapEncoder encoder = new PngBitmapEncoder(); 
     encoder.Frames.Add(BitmapFrame.Create(image)); 
     encoder.Save(fileStream); 
    } 
} 

Bằng cách này, lưu ý rằng có a bug in Clipboard.GetImage. Nó không phải là một vấn đề nếu bạn chỉ lưu hình ảnh vào một tập tin, nhưng nó sẽ là nếu bạn muốn hiển thị nó.


EDIT: lỗi nêu trên dường như được cố định trong 4,0

+0

này không biên dịch trên máy tính của tôi. Tham số BitmapFrame.Create là URI hoặc stream, không phải hình ảnh: \ –

+0

@IgnacioSolerGarcia Phương thức này tồn tại trong WPF: https://msdn.microsoft.com/en-us/library/ms615993(v=vs.110).aspx. Bạn đang tạo loại ứng dụng nào? –

+0

Bạn nói đúng, xin lỗi. Tôi đã làm một bằng chứng nhanh về ứng dụng khái niệm với WinForms. –

Các vấn đề liên quan