当前位置:编程学习 > C#/ASP.NET >>

C#解析SUM 光栅文件图象(RAS文件)

使用方法、

 ImageRas _Ras = new ImageRas(@"D: emp est.ras");
            pictureBox1.Image = _Ras.Image;

            _Ras.SaveRas(@"d: empOK.ras");

我只实现了24位色和8位色 这个结构也太简单了。只有文件头和数据区 。就是8位色的色彩表有些特殊

先是红色表 绿色表 蓝色表  平时都是 RGB、RGB 这样放 这东西居然RRRR.....GGG......B....

不知道怎么想的。

项目多了很少有时间做这些东西了。下个目标是IFF文件

全部代码
using System;  
using System.Collections.Generic;  
using System.Text;  
using System.Runtime.InteropServices;  
using System.Drawing.Imaging;  
using System.Drawing;  
using System.IO;  
 
namespace Zgke.MyImage.ImageFile  
{  
    /// <summary>  
    /// SUN光栅图形 RAS  
    /// zgke@sina.com    
    /// qq:116149  
    /// </summary>  
    public class ImageRas  
    {  
        public ImageRas(string p_ImageFile)  
        {  
            if (System.IO.File.Exists(p_ImageFile))  
            {  
                LoadImage(System.IO.File.ReadAllBytes(p_ImageFile));  
            }  
        }  
 
        public ImageRas()  
        {  
        } 
 
        #region 私有  
        /// <summary>  
        /// 文件头 956AA659  
        /// </summary>  
        private uint m_Mageic = 0x956AA659;  
 
        /// <summary>  
        /// 宽  
        /// </summary>  
        private uint m_Width = 0;  
 
        /// <summary>  
        /// 高  
        /// </summary>  
        private uint m_Height = 0;  
 
        /// <summary>  
        /// 颜色深  
        /// </summary>  
        private uint m_Depth = 0;  
 
        /// <summary>  
        /// 图形区域数据大小  
        /// </summary>  
        private uint m_Length = 0;  
 
        /// <summary>  
        /// 数据类型  
        /// </summary>  
        private uint m_Type = 0;  
 
        /// <summary>  
        /// 色彩图形类型  
        /// </summary>  
        private uint m_MapType = 0;  
 
        /// <summary>  
        /// 色彩长度  
        /// </summary>  
        private uint m_MapLength = 0;  
 
        /// <summary>  
        /// 颜色表  
        /// </summary>  
        private Color[] m_ColorList = new Color[256];  
 
        /// <summary>  
        /// 图形  
        /// </summary>  
        private Bitmap m_Image; 
        #endregion  
 
        /// <summary>  
        /// 获取图形  
        /// </summary>  
        public Bitmap Image  
        {  
            get 
            {  
                return m_Image;  
            }  
            set 
            {  
                if (value != null)  
                {  
                    m_Image = value;  
                    m_Width = (uint)value.Width;  
                    m_Height = (uint)value.Height;  
                    switch (value.PixelFormat)  
                  &

补充:软件开发 , C# ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,