首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >将JPEG图像转换为字节数组COM异常

将JPEG图像转换为字节数组COM异常
EN

Stack Overflow用户
提问于 2011-09-14 16:11:56
回答 4查看 74K关注 0票数 26

使用C#,我试图从磁盘加载一个JPEG文件,并将其转换为字节数组。到目前为止,我有以下代码:

代码语言:javascript
复制
static void Main(string[] args)
{
    System.Windows.Media.Imaging.BitmapFrame bitmapFrame;

    using (var fs = new System.IO.FileStream(@"C:\Lenna.jpg", FileMode.Open))
    {
        bitmapFrame = BitmapFrame.Create(fs);
    }

    System.Windows.Media.Imaging.BitmapEncoder encoder = 
        new System.Windows.Media.Imaging.JpegBitmapEncoder();
    encoder.Frames.Add(bitmapFrame);

    byte[] myBytes;
    using (var memoryStream = new System.IO.MemoryStream())
    {
        encoder.Save(memoryStream); // Line ARGH

        // mission accomplished if myBytes is populated
        myBytes = memoryStream.ToArray(); 
    }
}

但是,执行ARGH行会给出这样的消息:

未处理

COMException。句柄无效。(来自HRESULT的异常: 0x80070006 (E_HANDLE))

我不认为Lenna.jpg文件有什么特别之处--我是从http://computervision.wikia.com/wiki/File:Lenna.jpg下载的。你能说出上面的代码出了什么问题吗?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-09-14 16:18:16

查看本文中的示例:http://www.codeproject.com/KB/recipes/ImageConverter.aspx

另外,最好使用System.Drawing中的类

代码语言:javascript
复制
Image img = Image.FromFile(@"C:\Lenna.jpg");
byte[] arr;
using (MemoryStream ms = new MemoryStream())
{
    img.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);
    arr =  ms.ToArray();
}
票数 55
EN

Stack Overflow用户

发布于 2014-03-06 20:13:54

其他建议:

代码语言:javascript
复制
byte[] image = System.IO.File.ReadAllBytes ( Server.MapPath ( "noimage.png" ) );

不应该只处理图像。

票数 24
EN

Stack Overflow用户

发布于 2013-04-04 17:53:15

代码语言:javascript
复制
public byte[] imageToByteArray(System.Drawing.Image imageIn)  
{   
 MemoryStream ms = new MemoryStream();     

 imageIn.Save(ms,System.Drawing.Imaging.ImageFormat.Gif);   
 return  ms.ToArray();   
}
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7413184

复制
相关文章

相似问题

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