2017-12-12 21 views
0

현재 Xamarin.Forms 앱을 만들고 있습니다. 내 페이지 중 하나에서 SkiaSharp를 사용하여 텍스트 마커 스타일 (즉 불투명도가 낮은 노란색 브러시)로 이미지의 일부를 강조 표시 할 수 있습니다.SkiaSharp에서 불투명도의 "합계"를 피하는 방법

이 관련 SKPaint 객체를 정의하는 방법입니다 : 지금까지 잘 작동,하지만 날 귀찮게하면 불투명도 "증가"할 때 나는 어떤 시점에서까지 다수의 중복 경로를 가지고이다 그건 그

var strokePaint = new SKPaint() 
{ 
    Color = Color.FromRgba(255, 255, 0, 100).ToSKColor(), 
    Style = SKPaintStyle.Stroke, 
    StrokeWidth = StrokeWidth 
}; 

기본 그림은 더 이상 볼 수 없습니다.

이 중복을 방지하려면 어떻게해야합니까? 나는 모든 경로를 하나에 병합하는 것을 고려하고 있었지만 사용자가 스트로크 사이에서 StrokeWidth를 변경할 수 있었기 때문에 작동하지 않는 것처럼 보였습니다. 그리고 다양한 너비로 패스를 그리는 방법을 보지 못했습니다.

여러분 중 누구도 저에게 도움이되기를 바랍니다. 어떤 생각이라도 감사드립니다!

+2

Skia에 익숙하지는 않지만 ['SKPaint'] (https://developer.xamarin.com/api/type/SkiaSharp.SKPaint/)에 대한 설명서를 살펴본 결과 ['BlendMode'] (https://developer.xamarin.com/api/property/SkiaSharp.SKPaint.BlendMode/) 속성을 가지고있는 것처럼 말입니다. 비슷한 시스템이 다른 시스템에서 어떻게 작동하는지에 따라 색상 조합 방법을 제어해야합니다. 찾고자하는 효과를 얻으려면 다른 값을 시도해야 할 수도 있습니다. 'Dst' 또는'Modulate'는 좋은 후보자처럼 보입니다. –

답변

1

저는 Skia에 익숙하지 않지만 SKPaint에 대한 설명서를 살펴본 결과 BlendMode 속성이있는 것처럼 보입니다. 비슷한 시스템이 다른 시스템에서 어떻게 작동하는지에 따라 색상 조합 방법을 제어해야합니다. 찾고자하는 효과를 얻으려면 다른 값을 시도해야 할 수도 있습니다. Dst 또는 Modulate는 좋은 후보자처럼 보입니다. - Bradley Uffner

답변 해 주셔서 감사합니다. Bradley! Darken 블렌드 모드를 사용하고 불투명도를 255로 설정하여 텍스트를 강조 표시 할 때 매우 좋은 효과를냅니다 (어두운 색만 표시되므로 밝은 배경의 어두운 텍스트는 내 마커 색상의 배경에 어두운 텍스트가됩니다).