Nếu tôi có hình ảnh wmf hoặc emf trong System.Drawing.Image, có cách nào để lưu dữ liệu siêu dữ liệu bằng C# mà không hiển thị nó dưới dạng bitmap không? Gọi Image.Save sẽ hiển thị nó thành một bitmap và tôi muốn giữ nguyên dữ liệu ban đầu để nó vẫn sẽ là một tệp định dạng .wmf hoặc .emf hợp lệ.Lưu metafile trong C#
Trả lời
Có vẻ như bạn không thể.
On this MSDN page, nó được phát biểu:
chú
Khi bạn sử dụng phương thức Save để lưu một hình ảnh đồ họa như một định dạng Windows Metafile (WMF) hoặc tăng cường Format Metafile (EMF) tập tin, tệp kết quả được lưu dưới dạng tệp Đồ họa mạng di động (PNG) thay thế. Hành vi này xảy ra vì thành phần GDI + của .NET Framework không có bộ mã hóa mà bạn có thể sử dụng để lưu tệp dưới dạng tệp .wmf hoặc .emf.
Mặc dù trang MSDN này, bạn có thể lưu tệp EMF thực. Xem câu hỏi này: gdi-c-how-to-save-an-image-as-emf
xem câu trả lời của user120789 trong liên kết được đề cập ở trên – user1027167
Có thể lưu một siêu tệp theo định dạng gốc nếu bạn sử dụng gdi32.dll.
Tôi đang sử dụng phương pháp được mô tả here và hoạt động tốt.
bản sao có thể có của [GDI +/C#: Cách lưu hình ảnh dưới dạng EMF?] (Http://stackoverflow.com/questions/152729/gdi-c-how-to-save-an-image-as-emf) – finnw