草庐IT

c# - GDI+/C# : How to save an image as EMF?

如果您使用Image.Save方法将图像保存到EMF/WMF,则会出现异常(http://msdn.microsoft.com/en-us/library/ktx83wah.aspx)还有其他方法可以将图像保存到EMF/WMF吗?有可用的编码器吗? 最佳答案 Image是一个抽象类:你想做什么取决于你是否正在处理一个Metafile或Bitmap.使用GDI+创建图像并将其保存为EMF很简单Metafile.每迈克的post:varpath=@"c:\foo.emf"varg=CreateGraphics();//getagraph

c# - GDI+ 中的 System.Drawing.Image.Save 发生一般性错误

异常:AgenericerroroccurredinGDI+.atSystem.Drawing.Image.Save(Stringfilename,ImageCodecInfoencoder,EncoderParametersencoderParams)atSystem.Drawing.Image.Save(Stringfilename,ImageFormatformat)atSystem.Drawing.Image.Save(Stringfilename)代码:byte[]bitmapData=newbyte[imageText.Length];MemoryStreamstreamB

c# - 使用 GDI+ 创建具有透明背景的图像?

我正在尝试创建一个具有透明背景的图像以显示在网页上。我尝试了几种技术,但背景总是黑色。如何创建透明图像,然后在其上绘制一些线条? 最佳答案 调用Graphics.Clear(Color.Transparent)来清除图像。不要忘记使用具有alphachannel的像素格式创建它,例如PixelFormat.Format32bppArgb。像这样:varimage=newBitmap(135,135,PixelFormat.Format32bppArgb);using(varg=Graphics.FromImage(image)){g

GDI+ 和 WPF 之间的 C# 转换

我正在考虑将我的c#应用程序从使用自定义GDI+绘制控件迁移到具有自定义控件等的WPF应用程序。我想知道所涉及的内容以及预期的内容。人们可以推荐任何可能有帮助的资源吗?或者确实有任何可能有益的个人经历? 最佳答案 (我提前为长篇道歉......我想传达的东西太多了......我希望它对你有所帮助。)这就是我们现在正在做的事情(将大量使用自定义(GDI+)绘制控件的Windows窗体应用程序迁移到WPF)。事实上,我在团队中的角色是构建这些GDI+控件……现在构建WPF控件。我同意Bijington的观点,即从头开始使您的应用程序完全

c# - 使用 SaveFileDialog 后 GDI+ 的 Bitmap.Save() 发生一般错误

我在usingblock中使用了以下代码块和更多代码:using(System.Drawing.BitmaptempImg=(System.Drawing.Bitmap)tempObj.GetData(System.Windows.Forms.DataFormats.Bitmap)){//...tempImg.Save("..\\..\\testdata\\tempImg.bmp",ImageFormat.Bmp);//...}但我仍然得到错误:AGenericErroroccuredatGDI+只有在我做了一些与usingblock中的代码无关的操作之后。在其他时候,这很有效。tem

C# - 将图像输出到响应输出流,给出 GDI+ 错误

输出图像到输出流时,是否需要暂存?将图像保存到文件时,我收到通常与文件夹权限错误相关的“通用GDI+”错误。我对图像所做的唯一一件事就是添加一些文本。即使我未经修改直接输出图像,我仍然会收到错误消息。例如,这样做会给我错误:using(Bitmapimage=newBitmap(context.Server.MapPath("images/stars_5.png"))){image.Save(context.Response.OutputStream,System.Drawing.Imaging.ImageFormat.Png);}在我运行Windows7、IIS7.5和ASP.NET

c# - GDI+、JPEG Image to MemoryStream 中出现一般性错误

这似乎是整个网络上的一个臭名昭著的错误。如此之多以至于我无法找到我的问题的答案,因为我的场景不适合。当我将图像保存到流时抛出异常。奇怪的是,这与png完美配合,但对于jpg和gif却给出了上述错误,这相当令人困惑。大多数类似的问题都与未经许可将图像保存到文件有关。具有讽刺意味的是,解决方案是像我一样使用内存流....publicstaticbyte[]ConvertImageToByteArray(ImageimageToConvert){using(varms=newMemoryStream()){ImageFormatformat;switch(imageToConvert.Mim

c++ - GDI 与 Direct2D

我现在正在编写一个模拟程序,我想将我的应用程序从使用GDI移植到使用Direct2D。但是我的Direct2D代码比我的GDI代码慢得多。我在屏幕上渲染了很多椭圆。在我的GDI应用程序中,我绘制到内存设备上下文,然后使用BitBlt在Windows设备上下文上绘制。使用Direct2D,我在ID2D1HwndRenderTarget上绘图。我的问题是,使用GDI时,我可以轻松绘制400多个椭圆,但仍然有400FPS。当我使用Direct2D执行相同数量的椭圆时,我的FPS下降到30FPS。我已经关闭了抗锯齿,但它并没有真正帮助。有趣的是,与GDI相比,在Direct2D中仅绘制几个椭圆

c++ - 关于 GDI/GDI+ 坐标兼容性?

我在同时使用GDI和GDI+进行绘图时遇到问题。页面转换——尤其是缩放——似乎在两者之间有点偏离。除了SetViewportExt和SetWindowExt之外,GDI上下文的哪些属性会影响输出的缩放?代码几乎只使用GDI进行绘图,但在少数需要其特性(半透明)的情况下使用GDI+。它使用SetViewportExt、SetWindowExt和SetViewportOrg来启用缩放和滚动。当需要GDI+时,我在HDC周围构造一个Gdiplus::Graphics对象并进行绘图。我假设这会使图形上下文包装设备上下文并将其渲染传递给设备上下文。如果我提取GDI+图形上下文的变换矩阵,我看到它

c++ - 是否可以从 Visual Studio 调试器检测 GDI 泄漏?

可以从任务管理器或ProcessExplorer中看到泄漏的GDI对象。.(嗯,你看不到泄漏,但你可以看到对象使用计数是否持续上升。)还有一些工具允许按类型查看GDI对象,例如GDIView[一],DeLeaker,DPUS或GDIDebug(sourecode).[a]请注意,我认为GDIView一个很好的工具来完成识别和确认存在GDI泄漏的工作,但它并不能真正帮助您在大型应用程序中找到泄漏代码。(我还要在这里指出,该工具运行良好并且表现良好,尽管它的主页有点奇怪(-:)还有一个名为leaktrap的WinDBG插件。使用MSDetoursLibrary.我也知道(并且使用过)AQT