2017-03-21 1 views
1

저는 C# - WPF로 스포츠 관리 게임을 만들고 있습니다. 플레이어를 대표하는 모자와 셔츠를 쓰고있는 사람의 템플릿 이미지가 있습니다.동적으로 특정 영역의 이미지를 C#, wpf로 색 지정

나는 그가 뛰고있는 팀에 따라 플레이어가 입고있는 셔츠와 모자를 동적으로 다시 칠하고 싶습니다. 팀 개체에는 2 개의 색 변수 인 Primary & Secundary 색이 있습니다.

지금은 Bitmap 객체를 편집하는 Flood Fill 알고리즘을 사용했습니다. 나중에 비트 맵을 Imagesource로 변환해야합니다.

모든 것이 상당히 정교하며 내가 실제로 "올바른"방식으로 수행하고 있는지, 아니면 초기 목표에 더 나은 접근 방식이 있는지를 의심스럽게 생각합니다. 복장을 팀 색상과 일치시킵니다.

+0

색조 변경 기능을 테스트하는 것이 좋습니다 (즉, "템플릿"비트 맵에 그림자를 적용 할 수 있음). 그러나 비트 맵을 2 개 (1 차 및 2 차 색상)로 나누고 색조가 변경된 후에 만 ​​병합하는 것을 의미합니다. paint.net을 사용하여 비트 맵에서 변화하는 색조를 테스트 할 수 있습니다 (멋진 슬라이더 있음). 원한다면 여기에있는 코드를 사용할 수 있습니다 : http://stackoverflow.com/questions/3837449/image-hue-modification-in-c-sharp 희망이 있습니다! –

답변

1

대신 비트 맵과 같은 래스터 이미지를 사용하는

(- - 예를 들어 그림자 대신 평면 색상의 내가 더 그라데이션 템플릿을 사용하기 시작하면 내가 가진 또 다른 문제는 홍수 채우기는 조금 복잡하다) 대신 벡터 그래픽과 WPF Path 개체를 사용할 수 있는지 확인해야합니다.

Path 데이터에 대한 자세한 내용은 MSDN을 참조하십시오 https://msdn.microsoft.com/en-us/library/ms752293(v=vs.110).aspx

이 방법, 당신은 단지 기본 데이터가 XAML View이라고 객체 변경하여 객체 각각의 옷을 Path 의류 항목의 색상을 변경할 수 Binding을 사용할 수 있습니다 하게되다. Path 개체를 사용하는 또 다른 이점은 벡터 데이터이기 때문에 게임이 실행되는 해상도와 상관없이 이미지가 픽셀 화되지 않고 크기가 조정된다는 것입니다.