首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

将Bitmap保存到MemoryStream的GDI +异常

在这个问题中,您提到了GDI+异常。GDI+是一个图形设备接口,它提供了一系列用于操作图像和绘图的API。在将Bitmap保存到MemoryStream时,可能会遇到GDI+异常。

以下是一些可能的原因和解决方案:

  1. 内存不足:如果系统内存不足,可能会导致GDI+异常。您可以尝试增加系统内存或释放不必要的内存。
  2. 文件格式不支持:如果您尝试将不支持的文件格式保存为MemoryStream,可能会导致GDI+异常。您可以使用支持的文件格式,或者寻找其他库来处理该格式。
  3. 文件损坏:如果您尝试保存损坏的Bitmap,可能会导致GDI+异常。您可以检查文件是否损坏,或者使用其他Bitmap来进行测试。

以下是一个使用C#将Bitmap保存到MemoryStream的示例代码:

代码语言:csharp
复制
using System;
using System.IO;
using System.Drawing;
using System.Drawing.Imaging;

public class BitmapToMemoryStream
{
    public static void Main()
    {
        Bitmap bitmap = new Bitmap("example.bmp");
        MemoryStream memoryStream = new MemoryStream();

        bitmap.Save(memoryStream, ImageFormat.Bmp);

        // 在这里,您可以使用memoryStream进行其他操作,例如将其上传到云存储服务。
    }
}

在这个示例中,我们首先创建了一个Bitmap对象,然后创建了一个MemoryStream对象。接下来,我们使用Bitmap的Save方法将Bitmap保存到MemoryStream中。最后,我们可以使用MemoryStream进行其他操作,例如将其上传到云存储服务。

请注意,这只是一个示例,并且可能需要根据您的具体需求进行修改。如果您仍然遇到GDI+异常,请提供更多详细信息,以便我们能够更好地帮助您。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

WPF图片处理相关

GDI总是画笔和画刷绑定在一起,即使不需要填充一个区域也必须指定一个画刷;而GDI+则可以使用不同函数分开使用画笔和画刷。 GDI+新特性 改进了颜色管理。...注意 GDI+对象比如Bitmap,是不会创建句柄,GetHbitmap方法不是获取句柄而是创建句柄。不会受GDI句柄数量限制。...Bitmap 是用于处理由像素数据定义图像对象。 位图由图形图像及其属性像素数据组成。 有许多标准格式可用于位图保存到文件。...您可以通过使用 Bitmap 构造函数之一,从文件、流和其他源创建图像,并使用 Save 方法将它们保存到流或文件系统。...使用 Graphics 对象 DrawImage 方法图像绘制到屏幕或内存。 Bitmap是从Image类继承一个图像类,它封装了Windows位图操作常用功能。

3.6K31

.NET生成小程序码,并合自定义背景图生成推广小程序二维码

为了节省服务器内存资源,我想就是成功调用通微信生成小程序码接口后直接把微信返回过来图片二进制内容(返回图片 Buffer)转化为二进制byte[]文件流,然后再转成Image这样就不需要在保存到本地直接读取本地背景图片通过...GDI+(Graphics)绘制图片。...请求异常返回值: 属性 类型 说明 errcode number 错误码 errmsg string 错误信息 请求代码: 注意:这个与前面获取授权凭证网络请求不同是因为要接收请求返回过来图片二进制内容...ms = new MemoryStream(buffer)) { // 直接调用Image库类中自带方法使用MemoryStream实例对象获取...bitmap = new Bitmap(backgroundImage.Width, backgroundImage.Height); Graphics graphics =

1.2K50

C#图像压缩相关方法总结

Bitmap存到磁盘里,然后读取。...//创建一个内存流 MemoryStream memoryStream = new MemoryStream(); //把Bitmap写入到内存 bitmap.Save(memoryStream, imageFormat...) { //限制尺寸乘上比值,就可以得到Bitmap裁剪区尺寸 //width和height是bitmap需要裁剪区域宽和高 int final_width = (int...但是储存像素字节少了,一个像素点能够表示颜色范围就变少了,可能造成部分颜色显示异常,修改位深度非常简单,只需要一行代码 //用指定位深度复制Bitmap Bitmap newBitmap = oldBitmap.Clone...因此我们可以通过减小图片尺寸来较小体积,而不必考虑它实际显示效果 这种方法唯一缺点就是放大后图片会变模糊,但是比起位深度压缩带来颜色异常,这种损失是可以接受 压缩至指定大小 严格说,压缩到指定大小几乎是不可能

83140

Win32C# 应用使用 GDI+ 对窗口截图(BitBlt)

在 Windows 上有 GDI+ 来操作位图,不止能完成很多位图操作,还提供了与 Win32 窗口互操作,可以截到 Win32 窗口图片。 如果你希望对窗口截图,那么可使用本文提供方法。...如果你不打算引用 System.Drawing.Common,那么可以考虑使用裸 GDI+ 来完成,可以参考 Win32/C# 应用不依赖任何库使用纯 GDI+ 对窗口截图(BitBlt) - walterlv...var oldHBitmap = Gdi32.SelectObject(cdc, (IntPtr)hBitmap); // 注:使用 GDI+ 截取“使用硬件加速过”应用时,截取到部分是全黑...using (var bmp = Image.FromHbitmap(hBitmap)) { using (var ms = new MemoryStream...Microsoft Docs 本文会经常更新,请阅读原文: https://blog.walterlv.com/post/win32-and-system-drawing-capture-window-to-bitmap.html

43930

.NET生成微信小程序推广二维码

为了节省服务器内存资源,我想就是成功调用通微信生成小程序码接口后直接把微信返回过来图片二进制内容(返回图片 Buffer)转化为二进制byte[]文件流,然后再转成Image这样就不需要在保存到本地直接读取本地背景图片通过...GDI+(Graphics)绘制图片。...(需要已经成为开发者,且账号没有异常状态) secret string 是 小程序唯一凭证密钥,即 AppSecret,获取方式同 appid 返回参数 属性 类型 说明 access_token string...access_token 存储与更新 access_token 存储至少要保留 512 个字符空间; access_token 有效期目前为 2 个小时,需定时刷新,重复获取导致上次获取 access_token... ms = new MemoryStream(buffer))             {                 // 直接调用Image库类中自带方法使用MemoryStream实例对象获取

19410

在ASP.NET中随意创建图形信息

实际上,两者区别在于:命令行程序图形保存在一个文件中,而ASP.NET 脚本图形直接发送到客户端。   举例程序做什么呢?...接着,用DrawString文本 "Hello World"按照规格输出到一个白色背景矩形(用 FillRectangle创建)中。图形完成后,将其保存在磁盘上。...凡是亲自研究过图形文件格式的人都知道这有多困难,但是使用 GDI+ (图形设备接口)就不那么困难了,这只需要下面的简单命令就可以:   newBitmap.Save("c://test.png", ImageFormat.PNG...要提醒是:增加任意数量错误处理代码以查看所传递参数有效性,这是所必须做修改中最大一部分。   另一个需要修改地方是图形发送给客户端而不是将它写入一个文件中。...这个新部分代码是这样:   MemoryStream tempStream = new MemoryStream();   newBitmap.Save(tempStream,ImageFormat.PNG

1.1K20

网页优化系列二:使用Cache缓存静态文件、图片(asp.net版)

网站中存在一些不会经常变更内容如静态文件、图片等,我们称之为静态资源。针对这些静态资源使用cache缓存到客户端中,以减少用户再次浏览该网页时请求量,从而加速了网页加载、呈现速度。...同样,要设置静态资源缓存到客户端,我们需要加一个中间层来处理静态资源请求。下面以图片为例进行说明。...ms = new MemoryStream(); 16 img.Save(ms,ift); 17 context.Response.OutputStream.Write...改成一个可以seekMemoryStream,先生成好png图片,然后再输出到response流。否则会出现GDI+一般性错误。 ?...请求数一样但图片是从cache中获取,也没有出现请求服务器后,服务器返回304情况。 下面总结一下设置文件缓存到cache后,触发读取cache已有文件操作。

2.2K70

【愚公系列】2023年12月 GDI+绘图专题 图形图像编程基础

GDI对象定义了GDI函数使用工具和环境变量,而GDI函数使用GDI对象绘制各种图形,在C#中,进行图形程序编写时用到GDI+(Graphice Device Interface Plus图形设备接口...2.图像类 GDI+提供了Image、Bitmap和Metafile等类用于图像处理,为用户进行图像格式加载、变换和保存等操作提供了方便。...(3)Bitmap类 封装GDI+位图,此位图由图形图像及其属性像素数据组成,Bitmap是用于处理由像素数据定义图像对象,它属于System.Drawing命名空间,该命名空间提供了对GDI+基本图形功能访问...Save |Image对象以指定格式保存到指定Stream对象。 SetPixel |设置Bitmap对象中指定像素颜色。 SetPropertyItem |指定属性项设置为指定值。...SetData 指定格式数据添加到剪贴板中。 SetDataObject 已重载。数据置于系统剪贴板中。 SetImage Bitmap格式Image添加到剪贴板中。

28312

base64编码在silverlight中使用

在传统.net应用中,使用base64编码字符串是一件很轻松事情,比如下面这段代码演示了如何本地文件转化为base64字符串,并且base64字符串又还原为图片文件. base64编码在传统.net...程序中应用(by 菩提树下杨过 ) using System; using System.Drawing; using System.Drawing.Imaging; using System.IO... ms = new MemoryStream(b);             Bitmap bitmap = new Bitmap(ms); return bitmap;         }     ...} } 但是到了silverlight环境中,这种简单操作方式却无法使用了,幸好网上有一个开源免费组件FluxJpeg,同时国外有高人已经利用该组件写出了位图转化为base64方法,这里我们借用一下即可...:WriteableBitmap转化为base64位字符串 /// /// /// </returns

1.3K70
领券