2017-09-13 6 views
0

화면의 중앙에 스플래시 창을 표시하는 데 사용되는 CSplash이라는 C++ 클래스를 사용하고 있습니다. 비트 맵 파일 형식 만로드하도록 설계되었습니다. RGB 투명 색상 키를 사용하여 투명한 배경으로 BMP를 표시 할 수 있습니다.BMP 투명 색상 키가 올바르게 표시되지 않습니다.


나는 PNG 이미지가 있습니다.

Transparent PNG

는 I 포토샵 이미지를 열어 투명 키로 배경색 (50, 200, 25)를 첨가.

Image Green BG

그때 나는 내 프로젝트에서 비트 맵 파일이 이미지를 저장합니다.

enter image description here

내가 파일 왼쪽 오전 : PowerUp.bmp 내 C++ 코드에서

, 나는 위 WM_NCCREATE에서 언급 된 클래스를 가져올 나는 다음과 같은 코드가 있습니다

CSplash splash = CSplash("PowerUp.bmp", RGB(50, 200, 25)); 
splash.WindowProc(hWnd, uMsg, wParam, lParam); 
splash.ShowSplash(); 
splash.DoLoop(); 

프로그램을 실행하면 시작 이미지가 투명한 배경으로 표시되지만 예상대로 표시되지 않습니다. 결과에는 아이콘 주변에 투명 색상이 남아 있습니다.

Splash Result

어떻게이 정확히 투명 원본 PNG 파일처럼 보이게 해결할 수 있습니까?

+0

알파 채널이있는 2004 bmp 파일은 비표준 형식입니다. 아마 당신은 더 새로운 CSplash 검색하는 것이 좋습니다 :) 그리고 btw, "RGB 투명 색상 키"는 "알파 채널"을 의미하지 않습니다. – KonstantinL

+0

@ ConstantinL 알겠습니다. 고마워요. 그리고 참으로 나는 그것을 무엇으로 표시해야하는지 전혀 모른다! – Acidic

답변

0

원본 PNG 이미지에는 투명한 부분이 있습니다 (안경 테두리는 엄격하게 불투명하지는 않지만 투명하게 투명하게 전환되는 것처럼 보임). 이는 일반적인 경우입니다. 따라서이 이미지가있는 녹색 배경이 절대적으로 있으면 녹색이 안경 테두리와 다른 이미지 주변에서 약간 변형됩니다. 그리고 그것은 롱런 (50, 200, 25)이 아니며, (51, 201, 25) 일 수 있으며 더 이상 CSplash에 의해 제거되지 않습니다.

알파 채널이 1 비트 (0 또는 1, 투명 또는 불투명) 인 투명한 형식으로 원본 PNG를 저장하면 전환이 손실되고 다시 열리고 녹색 배경 트릭이 수행됩니다. 다시.

+0

네가 맞다고 생각해, 에일 리어 징 제거가되어, 지금 시도해 보자. – Acidic

+0

Yepppppppppppppppppppppppppppppppp가 Photoshop에서 그것을 고쳤다! 타이! – Acidic