emf
tệp chỉ là danh sách các lệnh GDI. Trong thực tế, chúng có thể được "phát lại" rất dễ dàng bởi hệ thống, sử dụng lệnh Windows GDI tiêu chuẩn (trong Delphi, một TMetaFile
chỉ là một trình bao bọc xung quanh các API đó).
Khi IrfanView hoặc FastReport hiển thị nội dung siêu tệp, họ chỉ sử dụng lệnh tương ứng Windows GDI. Khi Windows 7 Paint hiển thị nội dung siêu dữ liệu, nó sử dụng trình kết xuất GDI +. Tôi thậm chí còn nghĩ rằng nó chuyển đổi nội bộ tệp emf
thành định dạng emf+
, sau đó hiển thị nó với chống aliaising bằng GDI +.
Vì vậy, nếu các tập tin emf
kết xuất không đúng trong IrfanView hoặc FastReport, tôi nghi ngờ điều này là bởi vì Metafile của bạn không cũng được hình thành: động cơ đồ họa của bên thứ ba mà bạn đang sử dụng là sản xuất emf tiêu chuẩn không. Một vấn đề có thể xảy ra là phông chữ được sử dụng bị thiếu trong hệ thống đích và GDI không thay thế phông chữ giống như GDI +.
khả năng khác là các tập tin emf
là có thể một kép dạng : nó chứa cả emf
định dạng (mà không đúng cách đã tạo nên không trả lại một cách chính xác sử dụng GDI) và emf+
định dạng (được trả lại như mong đợi sử dụng GDI +) . Thông thường, định dạng képemf/emf+
không tồn tại: ngay cả thư viện GDI + chính thức không cho phép lưu nội dung siêu tệp của mình trong emf +. Đây là một loại định dạng "quái vật", được tạo bởi thư viện bên thứ ba của bạn.
Tôi đề nghị như sau:
- Tải về và kiểm tra tập tin
emf
của bạn với EmfExplorer;
- Cố gắng sử dụng GDI + để hiển thị siêu dữ liệu;
- Hãy thử sử dụng API chuyển đổi
emf
đến emf+
.
Để sử dụng GDI +, hãy xem mã nguồn mở SynGdiPlus unit: nó sẽ thêm GDI + chống aliaising vào bitmap đã tạo của bạn. Nó có thể chuyển đổi emf
thành emf+
. Nó sẽ sử dụng Vista/Seven API (giống như Windows 7), hoặc mã Delphi đơn giản trong Windows XP.
Nguồn
2012-01-10 06:23:19
How are you tạo file meta? Điều gì về một số mã? –
Nhìn kỹ hơn về điều này trên một máy tính thực sự, tôi nhận ra loại hiệu ứng đó. Tôi đã nhìn thấy nó với đầu ra của chương trình của riêng tôi. Tôi nghĩ đó chỉ là bản chất của cách thức một số gói rasterise một metafile. Rõ ràng metafile là tốt bởi vì một gói làm cho nó tốt. Chương trình khác bạn nên xem là Word. Nếu bạn muốn xuất khẩu để tiêu thụ bởi một gói đồ họa raster sau đó xuất khẩu dưới dạng bitmap ở định dạng PNG tốt nhất. –
cảm ơn ý kiến của bạn. @DavidHeffernan: metafile được tạo bởi engine đồ họa của bên thứ 3. –