문제

WinForms C# 3.0 응용 프로그램을 개발 중입니다. 우리의 디자이너는 필요한 모든 예술을 포함하는 많은 .ico 파일을 만들었습니다. .ICO의 선택은 종종 다른 차원의 여러 장소에서 동일한 이미지가 필요하기 때문에 만들어졌습니다.

이제 .ICO 파일 인 것 같습니다 진짜 Visual Studio에서 사용하는 것이 성가신. 해당 이미지를 사용하는 유일한 방법은 이미지 목록을 통해서 (모든 컨트롤에서 지원되지는 않습니다) 다른 리소스와 비교할 때 다음과 같이 쓸 수 없습니다.

foo.Image = global::RFQHUB.RFQHUBClient.Properties.Resources.foo; //    Cannot implicitly convert type 'System.Drawing.Icon' to 'System.Drawing.Image'  

내가 고려하는 옵션은 다음과 같습니다.

  • 메인 창의 모든 아이콘을 참조하는 모든 크기의 이미지리스트를 만듭니다. 다른 창 에서이 Imagelist를 연결하고 직접 사용할 수 없을 때 ImageList에서 이미지 개체를 내보낼 수있는 방법을 찾으십시오. ImageList에는 Draw () 메소드가 포함되어 있으므로 아마도 가능할 것입니다.
  • 여러 x16.gif ... x48.gif로 얻은 모든 X.ico를 변환하고 리소스를 통해 사용하십시오.

일부 사람들이 Winform 응용 프로그램에서 .ICO 리소스를 성공적으로 사용하고 있는지 알고 싶습니다. 그래서 어떻게 설정 했습니까?

도움이 되었습니까?

해결책

ICO는 쓸모없는 형식은 아니지만 가깝습니다. 애플리케이션 아이콘에는 여전히 유용하지만 거의 모든 것에 대해 필요한 각 크기에 대해 ImageList를 사용하는 것이 좋습니다. 그리고 그리드에 배치 된 여러 이미지가 포함 된 비트 맵에서 ImageList를 채우는 것이 훨씬 빠릅니다.

또한 비트 맵에서 알파 채널 투명성을 사용하여 최상의 결과를 얻으려면 PNG가 알파 채널을 지원하기 때문에 리소스에 .png 파일로 저장하는 것이 가장 좋은 방법입니다. ICO 및 GIF 파일은 투명성을 위해 단일 비트 만 지원합니다. 모든 픽셀은 완전히 불투명하거나 완전히 투명합니다. 투명성을위한 8 비트 알파 채널이 훨씬 더 멋지게 보입니다.

아티스트를 드로잉 보드로 다시 보낼 수 있다면 그렇게해야하며 알파로 완전한 알리어스 이미지를 수행하도록해야합니다. 할 수 없다면, 모든 아이콘 파일을 Imagelist에로드하는 데 적합한 비트 맵으로 변환하기 위해 작은 프로그램을 작성하는 것이 좋습니다.

다른 팁

이미지를 PNG로 변환하십시오. 가리키다. .ICO 파일을 사용하기로 결정한 사람은 처음부터 비공개로 이야기해야합니다. 논쟁은 근거가 없습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top