Image 如何在UWP中裁剪椭圆图像得到圆形图像源或位图图像

Image 如何在UWP中裁剪椭圆图像得到圆形图像源或位图图像,image,xaml,uwp,crop,win2d,Image,Xaml,Uwp,Crop,Win2d,我需要将图像裁剪成椭圆形状,但我不想像本文中提到的那样使用椭圆和ImageBrush填充,而是需要位图本身是圆形/椭圆形,而不是矩形 有时我想裁剪成矩形,有时裁剪成椭圆形,所以我不能使用椭圆和填充 有没有其他解决办法?如果我能以椭圆格式剪辑图像也会更好 但是剪辑图像只接受矩形几何体。您可以创建自定义用户控件,并在其中使用win2d CanvasControl显示图像,您可以在其中以所需的任何形状绘制图像,使用“CreateLayer”功能使用形状遮罩绘图图像。比如说 在xaml时: <Us

我需要将图像裁剪成椭圆形状,但我不想像本文中提到的那样使用椭圆和ImageBrush填充,而是需要位图本身是圆形/椭圆形,而不是矩形

有时我想裁剪成矩形,有时裁剪成椭圆形,所以我不能使用椭圆和填充

有没有其他解决办法?如果我能以椭圆格式剪辑图像也会更好


但是剪辑图像只接受矩形几何体。

您可以创建自定义用户控件,并在其中使用win2d CanvasControl显示图像,您可以在其中以所需的任何形状绘制图像,使用“CreateLayer”功能使用形状遮罩绘图图像。比如说

在xaml时:

<UserControl
    x:Class="UWPClassLib.MyImageControl"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="using:UWPClassLib"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    xmlns:win2d="using:Microsoft.Graphics.Canvas.UI.Xaml"
    mc:Ignorable="d">
    <win2d:CanvasControl x:Name="w2dCanvas"
                         Draw="w2dCanvas_Draw" />
</UserControl>
现在你们可以在任何地方用它来显示矩形或圆形的图像。您只需更改MaskShape并调用invalidate 请原谅我的错误,因为我是在路上写的,没有测试过。
这只是一个想法

您可以创建一个自定义用户控件,并在其中使用win2d CanvasControl来显示图像,您可以在其中以任何想要的形状绘制图像,使用“CreateLayer”功能以形状遮罩绘图图像。比如说

在xaml时:

<UserControl
    x:Class="UWPClassLib.MyImageControl"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="using:UWPClassLib"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    xmlns:win2d="using:Microsoft.Graphics.Canvas.UI.Xaml"
    mc:Ignorable="d">
    <win2d:CanvasControl x:Name="w2dCanvas"
                         Draw="w2dCanvas_Draw" />
</UserControl>
现在你们可以在任何地方用它来显示矩形或圆形的图像。您只需更改MaskShape并调用invalidate 请原谅我的错误,因为我是在路上写的,没有测试过。 这只是一个想法