【问题标题】:Image cropping windows phone图像裁剪 windows phone
【发布时间】:2013-10-07 22:31:23
【问题描述】:

我想在 wp7 中裁剪图像,使其只有一部分出现在图像框(或只是“图像”控件)中。我使用了 image.clip,但它实际上保留了整个图像,只是将“待裁剪”部分变白。如何裁剪图像以便裁剪后的图像是结果图像? 注意:我正在xaml中寻找方法

【问题讨论】:

  • 不可以,您需要通过转换函数传递图像并将其保存在本地/内存中并手动分配给图像控件。您唯一能做的就是在 XAML 中剪辑图像。
  • 另外,你确定不能只用clip吗?我使用 EllipseGeometry 来剪辑我的图像以显示一个圆圈内的人的肖像,它适用于浅色/深色主题,没有问题,剪辑外没有白色边框/正方形。

标签: c# image xaml windows-phone-7


【解决方案1】:

这对我来说非常适合浅色和深色主题。我在椭圆剪辑内显示一个方形图像并在其周围添加边框;它没有显示出来。

<Grid>
    <Ellipse 
        HorizontalAlignment="Center" 
        VerticalAlignment="Center" 
        Width="78" 
        Height="78" 
        StrokeThickness="5" 
        Stroke=""/>
    <Image 
        HorizontalAlignment="Center" 
        VerticalAlignment="Center" 
        Stretch="UniformToFill" 
        Source="{Binding MediumPhotoUrl}" 
        Width="64" 
        Height="64" >
        <Image.Clip>
            <EllipseGeometry RadiusX="32" RadiusY="32" Center="32,32"/>
        </Image.Clip>
    </Image>
</Grid>

你确定你的剪辑正确吗?

【讨论】:

  • 做一个椭圆几何不会使图像椭圆...对吗?同样,矩形几何体不会给我一个修改过的矩形。它只是省略了该部分。还是谢谢。
  • 但如果您需要做的只是显示一个看起来像椭圆的图像...这就是您需要的,对吧?是否有理由需要将位图修改为椭圆?
  • 这是我的应用程序使用 eclipse geo 的截图:sdrv.ms/19UYOB9。我相信这就是你想要的,对吧?如果是这样,上面的代码就是我用来完成它的。
【解决方案2】:

如果知道初始图像的大小,就可以计算出所需的变换,例如:

<Image Width="100" Height="100">
  <Image.Clip>
    <!-- Image after clipping takes only a small area in the center -->
    <RectangleGeometry Rect="25,25,50,50"/>
  </Image.Clip>
  <Image.RenderTransform>
    <!-- Transforms Rect(25,25,50,50) into Rect(0,0,100,100) -->
    <TransformGroup>
      <TranslateTransform X="-25" Y="-25"/>
      <ScaleTransform ScaleX="2" ScaleY="2"/>
    </TransformGroup>
  </Image.RenderTransform>
</Image>

我不知道自动执行此操作的方法(无需隐藏代码)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-22
    相关资源
    最近更新 更多