[翻译]“图片”与“二进制数组”互相转换的类

在CodeProject上看的文章,没有什么技术含量,纯属练习E文,让大家见笑了,有翻译的不恰当的地方也请大家批评指正。

原文链接:http://www.codeproject.com/useritems/ImageConverter.asp

翻译如下:

最近我一直在找System.Drawing.Image与Byte[]  array 互相转换的类,然后在google上搜索了很多资料用我认为最快的方式写了一个类并且共享给社区的朋友。

我写的这个类叫ImageConverter.cs  他有两个方法

第一个方法:Image 转换为 byte[]数组

public byte[] imageToByteArray(System.Drawing.Image imageIn)
{
 MemoryStream ms 
= new MemoryStream();
 imageIn.Save(ms,System.Drawing.Imaging.ImageFormat.Gif);
 
return  ms.ToArray();
}

该方法用System.Drawing.Image.Save方法把图片存为 memorystream.,然后内存流用MemryStrea类的ToArray()方法返回一个byte 数组

第二个方法:byte[]数组转换为 Image

public Image byteArrayToImage(byte[] byteArrayIn)
{
     MemoryStream ms 
= new MemoryStream(byteArrayIn);
     Image returnImage 
= Image.FromStream(ms);
     
return returnImage;
}

该方法使用Image类的Image.FromStream方法通过由byte数组参数创建的MemoryStream对象生成一个Image,并返回该image对象。

我刚好用这个方法以通过转换为byte数组的方式把图片转换传给一个web service,反之亦然。

附全部代码如下:

using System;
using System.Drawing;
using System.IO;
using System.Collections;

    
/// <summary>
    
/// Description of ImageConverter.
    
/// </summary>
    public class ImageConverter
    {
        
public ImageConverter()
        {
        }
        
        
public byte[] imageToByteArray(System.Drawing.Image imageIn)
        {
            MemoryStream ms 
= new MemoryStream();
            imageIn.Save(ms,System.Drawing.Imaging.ImageFormat.Gif);
            
return  ms.ToArray();
        }
        
        
public Image byteArrayToImage(byte[] byteArrayIn)
        {
            MemoryStream ms 
= new MemoryStream(byteArrayIn);
            Image returnImage 
= Image.FromStream(ms);
            
return returnImage;
    
        }

    
public static void Main()
        {

        }
        
    }

注:真的很短的文章,虽然自己明白意思,可是真要翻译的通顺真难啊。

posted on 2006-12-09 18:50  billow  阅读(2000)  评论(3编辑  收藏  举报