Tôi có một tệp EMF. Tôi muốn thay đổi kích thước nó nhỏ hơn.Làm cách nào để thay đổi kích thước (thu nhỏ) EMF (Metafile) trong .Net?
Làm cách nào để thực hiện điều này trong .net (hoặc với bất kỳ công cụ nào) mà không bị mờ hình ảnh?
Hình ảnh được định lại kích thước sẽ được chuyển đổi sang định dạng khác (png/jpg/bất kỳ), tôi có thể xử lý (tôi nghĩ).
Tôi chưa tìm thấy ví dụ rõ ràng trong .Net (hoặc bất kỳ nền tảng ngôn ngữ nào cho vấn đề) đề cập đến emf/metafiles.
Tôi đã xem trong Lập trình đồ họa với GDI + nhưng nó chỉ giới thiệu Siêu dữ liệu.
Tôi đã thử Image Magick nhưng bạn phải chuyển sang định dạng khác (mà tôi cần làm) và kết quả bị mờ (khi bị thu nhỏ và chuyển thành png chẳng hạn).
Tôi đã thử Inkscape, nhưng bạn chỉ có thể nhập tệp EMF và Inkscape nhập khẩu lộn ngược và tỷ lệ phần trăm thành bản vẽ hiện có.
Ngoài ra, (không cười) Tôi đã mở nó trong Window's Paint (một trong số ít các chương trình phần mềm chỉnh sửa hình ảnh sẽ mở emf) và thay đổi kích cỡ bản vẽ, lại bị mờ.
Cập nhật: Đây là mã tôi đang sử dụng để đổi kích thước.
Tác phẩm này, nhưng hình ảnh kết quả bị mờ. Mã này chỉ là một thói quen hình ảnh tái định cỡ chung chung, không cụ thể cho EMF của
private static Image resizeImage(Image imgToResize, Size size)
{
int sourceWidth = imgToResize.Width;
int sourceHeight = imgToResize.Height;
float nPercent = 0;
float nPercentW = 0;
float nPercentH = 0;
nPercentW = ((float)size.Width/(float)sourceWidth);
nPercentH = ((float)size.Height/(float)sourceHeight);
if (nPercentH < nPercentW)
nPercent = nPercentH;
else
nPercent = nPercentW;
int destWidth = (int)(sourceWidth * nPercent);
int destHeight = (int)(sourceHeight * nPercent);
Bitmap b = new Bitmap(destWidth, destHeight);
Graphics g = Graphics.FromImage((Image)b);
g.InterpolationMode = InterpolationMode.HighQualityBicubic;
g.DrawImage(imgToResize, 0, 0, destWidth, destHeight);
g.Dispose();
return (Image)b;
}
Nguồn: http://www.switchonthecode.com/tutorials/csharp-tutorial-image-editing-saving-cropping-and-resizing
Tôi sẽ hỏi bạn đang vẽ EMF ở đâu. Nhưng, những gì Magnus vừa đăng tải sẽ bao gồm mọi thứ bạn muốn làm. –