통합검색
· 마을서비스란?  · 포럼마을  · 일반마을  · 테마마을  · 마을랭킹  · 활동왕
· 덱스퍼트란?  · TECBOX   · PRSBOX   · 이용안내  
· DEXT제품군  · 솔루션베이  · S/W & ESD 컴포넌트
· 프로그램베이
· LiveSeminar  · LiveConference
데브피아 C# 포럼 마을에 오신 것을 환영합니다.
  마을등급 C#   이 마을은 포럼마을 입니다이 마을은 자유가입제 마을 입니다 마을소개 페이지로 이동 전입신청
마을촌장촌장 비사모 주민 12883 since 2006-12-28
우리마을 공지사항
질문&답변
강좌&팁
자유게시판
자료실
앨범
개인게시판
[마을 게시판]
구인/구직 게시판
건의 / 운영 제안
랑데브 게시판
칼럼 게시판
개발자 고충상담
Dev Talk
자유토론방
벼룩시장
재나미 우스개
구인/프로젝트 정보
사람인 채용 게시판
  고객지원 게시판
마이 데브피아
 나의 e-Money 내역
 활동왕 My Page
 스크랩한 게시글보기
 쪽지관리
 주소록관리

 질문&답변 ※ 꼭 답변채택을 해주시어 성의껏 답변해주신 회원님께 감사의 마음을 전하시길 바랍니다.
 그림판에서 이미지파일 불러오기 오류 질문드립니다.  | WinForm Program 2019-12-16 오전 9:35:55
촉호 번호: 179233 추천:0  / 읽음:64

 

다른 분의 예제 소스 보면서 그림판 만들고있습니다.

이미지 파일 불러오기 부분에서 오류가 있어서 질문드립니다.

 

예제소스는 DTF 확장자 파일만 불러오기, 저장되도록 되어있었는데..

저는 JPG나 PNG, BMP파일을 사용해야해서 그부분 옵션을 수정했었습니다.

그리고나서 불러오기했더니 아래와 같은 오류가 뜹니다.

파일 불러오는 소스도 같이 첨부하겠습니다.

 

오류는 빨간색으로 표시한 부분에서 발생하구요. 파일 역직렬화하는 부분입니다..

해결 방법 아시는분의 조언 부탁드립니다...!!

 


 

 

        private void FileLoad()
        {
            //파일 불러오기 대화창을 이용해서 불러올 파일의 위치와 파일명을 입력한다.
            openFileDialog1.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);

            if (openFileDialog1.ShowDialog() == System.Windows.Forms.DialogResult.OK)
            {
                if (File.Exists(openFileDialog1.FileName))
                {
                    FileStream fs = null;
                    try
                    {

                        fs = new FileStream(openFileDialog1.FileName, FileMode.Open);

                        BinaryFormatter bf = new BinaryFormatter();

 

                        //파일을 Model.Graphic 클래스로 역직렬화 한다.
                        Model.Graphic tmpItem = bf.Deserialize(fs) as Model.Graphic;
                       
                        fs.Close();

                        if (tmpItem != null)
                        {
                            //기존에 작성된 내용은 삭제한다.
                            MainController.Instance.GraphicModel.GrapList.Clear();

                            //역직렬화 한 tmpItem 을 MainController.Instance.GraphicModel 에 넣어 준다.
                            MainController.Instance.GraphicModel = tmpItem;

                            //실행 취소와 다시 실행 항목을 초기화 한다.
                            MainController.Instance.Command.Clear();

                            //실행 취소와 다시 실행 버튼의 상태를 설정한다.
                            SetToolStripMenu();

                            //불러오기가 완료 되었음을 옵저버에게 알린다.
                            MainController.Instance.Notify(ObserverAction.FileLoad);

                        }

                    }
                    catch (Exception ex)
                    {
                        throw ex;
                    }

                }
            }
        }

이 글에 답변 등록하기
 [답변]참고해보세요. 2019-12-16 오후 2:47:10
칡흙 번호: 179237 추천:0  

 

1. 오류 메시지 확인하는 방법

2. 잘 되는 예제 참고하시는 방법

 

-  C# 프로그래밍  책 확인

-  C# MSDN 확인

-  SerializationException 오류 메시지 확인  e.Message

-  BinaryFormatter MSDN 확인
- Deserialization MSDN 확인

-  C# 그림판  예제  확인

- Microsoft.VisualStudio.GraphModel.dll 확인

 

 

//

SerializationException Class

https://docs.microsoft.com/en-us/dotnet/api/system.runtime.serialization.serializationexception?view=netframework-4.8

 

The exception thrown when an error occurs during serialization or deserialization.

직렬화 또는 역 직렬화 중에 오류가 발생하면 예외가 발생합니다.

 

 

e.Message

 

        catch (SerializationException e)
        {
            Console.WriteLine(
"Failed to deserialize. Reason: " + e.Message);
           
throw;
        }

//

new XmlSerializer(typeof(T)).Deserialize(reader) as T;

//
    returnThis
= (T)serializer.Deserialize(new StreamReader(xmlFile));

//
       
using (var reader = XmlReader.Create(path))
       
{
            type
= serializer.Deserialize(reader) as T;
       
}

//

            using (TextReader reader = new StreamReader(@"C:\Users\SlowLearner\source\repos\ConsoleApp2\ConsoleApp2\Class1.xml"))
           
{
               
XmlSerializer serializer = new XmlSerializer(typeof(CarCollection));
               
return (CarCollection)serializer.Deserialize(reader);
           
}



//
How to Deserialize XML document

https://stackoverflow.com/questions/364253/how-to-deserialize-xml-document



XmlSchemaInference Class

https://docs.microsoft.com/en-us/dotnet/api/system.xml.schema.xmlschemainference?redirectedfrom=MSDN&view=netframework-4.8


BinaryFormatter Class

https://docs.microsoft.com/en-us/dotnet/api/system.runtime.serialization.formatters.binary.binaryformatter?view=netframework-4.8

객체 또는 연결된 객체의 전체 그래프를 이진 형식으로 직렬화하고 역 직렬화합니다.

BinaryFormatter and Deserialization Complex objects

https://stackoverflow.com/questions/5017274/binaryformatter-and-deserialization-complex-objects


BinaryFormatter.Deserialize Method

https://docs.microsoft.com/en-us/dotnet/api/system.runtime.serialization.formatters.binary.binaryformatter.deserialize?view=netframework-4.8#System_Runtime_Serialization_Formatters_Binary_BinaryFormatter_Deserialize_System_IO_Stream_



//

How to increase deserialization speed?

https://stackoverflow.com/questions/1620663/how-to-increase-deserialization-speed

 

.NET Framework Runtime Serialization
https://www.codeproject.com/Articles/36671/NET-Framework-Runtime-Serialization

 

 

//

c# image

https://www.codeproject.com/search.aspx?q=c%23+image&doctypeid=1%3b2%3b3%3b13%3b11&pgnum=4

 

 

//

C# 그림판

"그림판" 에 대한 게시판 검색 결과입니다.
http://search.devpia.com/MAEULResult.aspx?KeyW=%uADF8%uB9BC%uD310&keyr=title&boardID=217&MAEULNo=8

https://www.bing.com/search?q=C%23+%EA%B7%B8%EB%A6%BC%ED%8C%90&FORM=EDGENA&refig=3b2976fc8e584439e4a47ffbe4b2fe34


https://search.naver.com/search.naver?sm=top_hty&fbm=1&ie=utf8&query=C%23+%EA%B7%B8%EB%A6%BC%ED%8C%90

 

//

Graph Class
https://docs.microsoft.com/en-us/dotnet/api/microsoft.visualstudio.graphmodel.graph?view=visualstudiosdk-2017

 

Definition


Resolving dependencies in main thread vs. async tasks
https://stackoverflow.com/questions/43928511/resolving-dependencies-in-main-thread-vs-async-tasks

 

 

//

C# 프로그래밍

https://book.naver.com/search/search.nhn?sm=sta_hty.book&sug=pre&where=nexearch&query=C%23+%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D



 

 

 

 

 

이 글에 답변 등록하기
목록 보기   지금 보고 계시는 글을 회원님의 my Mblog >> 스크랩에 넣어두고 다음에 바로 보실 수 있습니다.  
회사소개  |   개인정보취급방침  |  제휴문의  |   광고문의  |   E-Mail 무단수집거부  |   고객지원  |   이용안내  |   세금계산서
사업자등록번호 안내: 220-81-90008 / 통신판매업신고번호 제 2017-서울구로-0055호 / 대표: 홍영준, 서민호
08390, 서울시 구로구 디지털로32길 30, 1211호 / TEL. 02_6719_6200 / FAX. 02-6499-1910
Copyright ⓒ (주) 데브피아. All rights reserved.