2011-08-17 4 views
0

Button 또는 ListView에 표시 될 때 32 비트의 이미지 (32 비트 ImageList)가 올바르게 표시되지 않습니다. PNG와 같은 알파 채널이있는 그림의 가장자리에 검은 반투명 픽셀이 있습니다.32 비트 ImageList 이미지가 올바르게 표시되지 않음

또한 그림이 손상되어 그 위에 줄이 생겨 품질이 저하됩니다 (예 : 그림을 다시 채집하지 않고 크기를 조정할 때).

삽입 된 이미지는 32 비트 품질로, 크기는 ImageList 개입니다.

Resources files을 사용하여 동일한 이미지를 넣으려고했으나 작동하지만, ListView의 경우 ImageList을 사용해야합니다. 제대로 작동하지 않습니다.

32 비트의 ImageList과 관련된 메모리 누수가 있습니까?

답변

0

이 문제는 (32 비트 16x16) ICO 파일을 가져올 때만 발생합니다. 32 비트 16x16 PNG 파일을 가져 오는 경우 아무런 문제가 없습니다.

이제 알았습니다!

+0

흠, 그렇지 않을 수도 있습니다! dls2004가 게시 한 메시지보기 : https://connect.microsoft.com/VisualStudio/feedback/details/428868/png-files-corrupted-in-an-imagelist-when-opening-and-closing-a-form – Velcro

0

나는 Velcro ..에 의한 의견을 가지고 32 비트 System.Drawing dll에 문제가 있다고 생각합니다.

동일한 문제 (32 비트 시스템에서 끔찍한 썸네일 품질)가 발생했으며 그 결과는 Listview 컨트롤이 아니라 thumbNail 생성과 함께 나타났습니다. 이 SO answer에 제공된 코드는 resizing-an-image-in-asp-net-without-losing-the-image-quality이며 매우 효과적입니다.

저는 우리가 처음에 listview에 우리를위한 스케일링을시키기 때문에 System.Drawing에 문제가 있다고 생각합니다. 이 문제를 해결하기위한 두 번째 시도는 오픈 소스 ImageListView 컨트롤을 사용하는 것이 었습니다. 그것도 똑같은 문제가 있었고 여전히 엄지 손가락을 생성하기 위해 System.Drawing을 사용합니다.

그런 다음 일반적인 방법으로 엄지 손가락을 수동으로 생성 해 보았습니다 (여전히 System.Drawing을 사용하여). 여전히 파괴되었습니다. 마지막으로 크기 조정 옵션 (위의 해결 방법)을 사용하기로 결정하고 해결했습니다.

관련 문제