微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Direct2D1.RenderTarget.FillOpacityMask 如何工作

如何解决Direct2D1.RenderTarget.FillOpacityMask 如何工作

我想通过遮罩绘制图片,并使用此 APIFillOpacityMask(Bitmap opacityMask,Brush Brush,OpacityMaskContent content,RawRectangleF? destinationRectangle,RawRectangleF? sourceRectangle); 然后,发生了一些奇怪的事情。如果我使用 FillOpacityMask(opacityMask,brush,content),它可以工作并且我在左上角得到一张正确的图片,就像这张图片。但是,当我使用FillOpacityMask(opacityMask,content,destinationRectangle,sourceRectangle)时,它无法工作,只能在左侧或顶部绘制,其中红色框the description picture 这是我的代码的一部分

 public void DrawTexture2DWithMask(
        ITexture2D texture2D,RectangleF destRectangle,ITexture2D maskTexture2D,RectangleF sourceRectangle
       
        )
    {
        SharpDX.Direct2D1.OpacityMaskContent content = SharpDX.Direct2D1.OpacityMaskContent.TextNatural;
        Direct2DTexture2D Texture2D = texture2D as Direct2DTexture2D;
        Direct2DTexture2D MaskTexture2D = maskTexture2D as Direct2DTexture2D;

        rendertargetPrivate.AntialiasMode = SharpDX.Direct2D1.AntialiasMode.Aliased;
        var brush = new SharpDX.Direct2D1.BitmapBrush(rendertargetPrivate,Texture2D.Texture2D);
        brush.InterpolationMode = SharpDX.Direct2D1.BitmapInterpolationMode.Linear;


        rendertargetPrivate.FillOpacityMask(
            MaskTexture2D.Texture2D,content
            //,destRectangle.ToRawRectangleF(),//sourceRectangle.ToRawRectangleF()

            );

    }

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。