首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >转换后的图像不清晰。wmf到png

转换后的图像不清晰。wmf到png
EN

Stack Overflow用户
提问于 2011-10-31 17:19:01
回答 3查看 5.2K关注 0票数 3

我正在尝试用c#.net将wmf图像文件转换为png格式。

但是,保存的图像并不清楚。

我的代码:

Metafile img = new Metafile(@"test.wmf");
MetafileHeader header = img.GetMetafileHeader();
Bitmap bitmap = new Bitmap((int)(img.Width / header.DpiX * 100), (int)(img.Height / header.DpiY * 100));
using(Graphics g = Graphics.FromImage(bitmap)){
    g.DrawImage(img, 0, 0);
}
bitmap.Save("test.png", ImageFormat.Png);

我怎么才能说清楚呢?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-10-31 19:16:44

.wmf文件的DpiX/Y值非常大。您需要重新缩放图像以使其更适合显示器的分辨率。这段代码生成了一个看起来不错的元文件版本。您可能希望调整缩放以满足您的需要,或在以后重新调整位图的比例:

        using (Metafile img = new Metafile(@"c:\temp\test.wmf")) {
            MetafileHeader header = img.GetMetafileHeader();
            float scale = header.DpiX / 96f;
            using (Bitmap bitmap = new Bitmap((int)(scale * img.Width / header.DpiX * 100), (int)(scale * img.Height / header.DpiY * 100))) {
                using (Graphics g = Graphics.FromImage(bitmap)) {
                    g.Clear(Color.White);
                    g.ScaleTransform(scale, scale);
                    g.DrawImage(img, 0, 0);
                }
                bitmap.Save(@"c:\temp\test.png", ImageFormat.Png);
            }
        }
票数 10
EN

Stack Overflow用户

发布于 2011-11-01 09:53:25

终于,我有了一个主意!!

那就是使用Inkspace。

大家都知道,Inkscape是一个矢量图形编辑器。

今天,我发现INKSCAPE有命令行选项!!http://goo.gl/Moksf

因此,我应该做的是使用一些选项调用incape.exe,例如:

Process.Start("inkscape.exe -f {wmf_filename} -e {png_filename_to_be_made}");

下面是转换后的png文件:http://yfrog.com/gyu40ap

非常清晰的png图像。这就是我想要的!

谢谢!

票数 0
EN

Stack Overflow用户

发布于 2016-06-02 15:30:42

EMF向量在转换为PNG时可能会非常奇怪(特别是在使用小格式时)。我最终把它放大了4倍,然后把它转换成我想要的大小。当使用这种策略时,效果会更好。

来源:https://keestalkstech.com/2016/06/rasterizing-emf-files-with-net-c/

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7951734

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档