gpt4 book ai didi

c# - 如何在C#中将jpg、位图格式的图片转换为矢量格式

转载 作者:太空宇宙 更新时间:2023-11-03 22:06:50 27 4
gpt4 key购买 nike

我尝试将 jpg 图像转换为矢量格式。我尝试实现此代码,但它是通过异常

 public void Run()
{
Control c = new Control();
Graphics grfx = c.CreateGraphics();
//ReadImage(ImageName) method return the Image to Byte Array
MemoryStream ms = new MemoryStream(ReadImage(@"E:\Temp\1.jpg"));
IntPtr ipHdc = grfx.GetHdc();
Metafile mf = new Metafile(ms,ipHdc);
grfx.ReleaseHdc(ipHdc);
grfx.Dispose();
grfx = Graphics.FromImage(mf);
mf.Save(@"E:\Temp\file.wmf", ImageFormat.Wmf);//Get Exception on this line
grfx.Dispose();
}

异常是:GDI+ 中发生一般错误。请验证我的代码在哪里我做错了。提前致谢

最佳答案

代码无法工作:Afaik Metafile 构造函数需要一个已经包含一些图元文件数据(即“.wmf”文件)或为空(对于新图元文件)的流

您应该创建一个新的图元文件,从中创建一个图形上下文,将 jpeg 图像加载到一个单独的 Image 对象中,然后在图元文件上下文中绘制它。然后您可以将图元文件另存为“.wmf”文件。

我自己没有这样做,但我找到了一个 article on CodeProject其中解释了有关图元文件创建的许多(棘手的)细节。

但是请注意,这不是“真正的”位图到矢量的转换。它只是将位图嵌入到“.wmf”容器中。例如,如果您尝试调整它的大小,您将获得与原始 jpeg 图像相同的结果(即没有“平滑”缩放)。

关于c# - 如何在C#中将jpg、位图格式的图片转换为矢量格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8147368/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com