2015년 4월 10일 금요일

XML 이미지/SortedList/HashTable Serializable

ㆍ언어대상 : C#   ㆍ실행대상 : 윈도우어플   ㆍ작성자 : 김민석  

[SortedList 및 HashTable]

        /// <summary>
        /// Queue 전체 데이터
        /// </summary>
        [XmlIgnore]
        private SortedList<int, QueueData> _QueueALL = new SortedList<int, QueueData>();

        #region ForSerialize - QueueALL

        [XmlIgnore]
        public SortedList<int, QueueData> QueueALL
        {
            get
            {
                return _QueueALL;
            }
        }

        [XmlArray("QueueALL")]
        public QueueData[] _D_QueueALL
        {

            get
            {
                return (_QueueALL == null ? null : _QueueALL.Values.ToArray());
            }

            set
            {
                if (_QueueALL == null)
                    _QueueALL = new SortedList<int, QueueData>();

                _QueueALL.Clear();
                if (value == null)
                    return;
                for (int i = 0; i < value.Length; i++)
                    _QueueALL.Add(value[i].QueueKey, value[i]);
            }
        }


        #endregion

 

[Image XML]

        [XmlIgnore]
        public Bitmap WorkerPicture { get; set; }

        #region ForSerialize - WorkerPicture

        [Browsable(false), EditorBrowsable(EditorBrowsableState.Never)]
        [XmlElement("WorkerPicture")]
        public byte[] WorkerPictureSerialized
        {
            get
            {
                // serialize
                if (WorkerPicture == null) return null;
                using (MemoryStream ms = new MemoryStream())
                {
                    WorkerPicture.Save(ms, System.Drawing.Imaging.ImageFormat.Bmp);    

                    return ms.ToArray();
                }
            }
            set
            {
                // deserialize
                if (value == null)
                {
                    WorkerPicture = null;
                }
                else
                {
                    using (MemoryStream ms = new MemoryStream(value))
                    {
                        WorkerPicture = new Bitmap(ms);
                    }
                }
            }
        }
        #endregion

[Image XML-JPEG]

        [XmlIgnore]
        public Bitmap FormImage { get; set; }

        #region ForSerialize - FormImage

        [Browsable(false), EditorBrowsable(EditorBrowsableState.Never)]
        [XmlElement("FormImage")]
        public byte[] FormImageSerialized
        {
            get
            {
                // serialize
                if (FormImage == null) return null;
                using (MemoryStream ms = new MemoryStream())
                {
                    if (UseJPEG)
                    {
                        long jpegQuality = 100L;  // 이 곳에 압축율을 적어주세요. 0 ~ 100
                        ImageCodecInfo iciJpegCodec = null;
                        ImageCodecInfo[] iciCodecs = ImageCodecInfo.GetImageEncoders();
                        for (int i = 0; i < iciCodecs.Length; i++)
                        {
                            if (iciCodecs[i].MimeType == "image/jpeg")
                            {
                                iciJpegCodec = iciCodecs[i];
                                break;
                            }
                        }

                        EncoderParameter epQuality = new EncoderParameter(System.Drawing.Imaging.Encoder.Quality, jpegQuality);
                        EncoderParameters epParameters = new EncoderParameters(1);
                        epParameters.Param[0] = epQuality;
                        FormImage.Save(ms, iciJpegCodec, epParameters);
                    }
                    else
                    {
                        FormImage.Save(ms, System.Drawing.Imaging.ImageFormat.Bmp);
                    }
                    return ms.ToArray();
                }
            }
            set
            {
                // deserialize
                if (value == null)
                {
                    FormImage = null;
                }
                else
                {
                    using (MemoryStream ms = new MemoryStream(value))
                    {
                        FormImage = new Bitmap(ms);
                    }
                }
            }
        }
        #endregion



해당 내용은 (주)데브존의 웹봇이 자동으로 저희 홈페이지와 API로 동기화한 내용입니다. 자세한 내용은 홈페이지 http://www.devzone.co.kr 또는 모바일 폰에서 http://devzone.co.kr을 접속 하여 확인해 보시기 비랍니다.
-  대표 전화 : 02) 2061 - 0753   - Fax : 02) 2061 - 0759   - Skype : devzone24
-  주소 : 서울특별시 양천구 목1동 923-14. 현대드림타워 1024호
-  기술 문의: 02) 2061-1259 김민석 기술이사


댓글 없음:

댓글 쓰기