image 파일을 동적으로? 넣어야 할 일이 생겼습니다.
"동적으로" 라는 말에 "?" 를 붙인 이유는
앞으로 진행할 작업이 동적이라고는 하지만 XML 파일에 추가를 시켜줘야하고, 이미지 파일을 Embedded Resource 로 등록을 해줘야 하기 때문입니다. ㅋㅋㅋ
그럼 다시 컴파일을 해줘야 하니까요...


위와 같이 image 들을 Embedded Resource 로 등록을 하게되면 (Build Action 을 Embedded Resource 로 설정해 놓은 것을 확인하자)
저번 Article 에서 언급했듯이
Reflector 를 이용해서 살펴보게되면 assembly 내에 아래 그림과 같이 등록되어 있는 것을 알 수 있다.

(실행파일을 만들면 좋겠지만 귀차니즘으로 인해 현재 제작중인 Application 의 내용을 Capture 를 하다보니 수정하고 손으로 편집하고... 그래서 좀 조잡하네요. 이해해 주세용 ^^' )

그럼 imagelist control 에 등록할 이미지들이 어떤 것들인지 정의할 XML 파일의 내용을 보면 아래와 같다.

  <CTypes>

    <CType value ="10">Black</CType>

    <CType value ="11">Blue</CType>

    <CType value ="12">Red</CType>

    <CType value ="13">Green</CType>

    <CType value ="14">Cyan</PType>

  </CTypes>

위 녀석을 읽어서 아래와 같이 Loop 를 돌면서 imageList Control 에 Add 한다.

    1         For Each dzitem As string In arrData

    2             strKey = dzitem

    3            

    4 

    5             Dim img As System.Drawing.Image

    6             Dim asm As System.Reflection.Assembly = Assembly.GetExecutingAssembly()

    7             Dim imageStream As System.IO.Stream = asm.GetManifestResourceStream("woojjaApplication." & strKey & ".png")

    8             img = Image.FromStream(imageStream)

    9 

   10             imglist.Images.Add(strKey, img)

   11 

   12         Next


Line 10 을 살펴보게되면 imageList 에 image 를 Add 할때 strKey 라고 하여 image 에 Key 를 부여할 수 있다.

이와 같이 이미지를 등록하는 방법을 선택한 몇가지 이유 중에 하나가 Key 를 등록하기 위해서 였다. ^^

Embedded Resource 가 아닌 Assembly 의 Resource 에 등록을 하고 imageList 에 image 를 Add 하는 방법을 써보려했으나 그건 좀 생각할 것이 좀더 많아서 다음 번에 구현해보려한다.


그럼 행복한 고수되셔요...


woojja ))*
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\



반응형

+ Recent posts