平面投影和比例导致银光模糊

时间:2010-03-16 11:06:01

标签: c# silverlight scale projection plane

确定,

所以我试图制作一个依赖于图像按个别因素缩放的应用程序。然后可以翻转这些图像,但是使用动画处理ProjectionPlane旋转。

当图像缩放和旋转时,问题就出现了。出于某种原因,它开始模糊,非缩放图像不会模糊。

另外,如果您查看下面的示例图像(顶部是缩放和旋转,底部旋转),顶部的投影甚至看起来都不正确。它太水平了。

http://img43.imageshack.us/img43/5923/testimages.png http://img43.imageshack.us/img43/5923/testimages.png

这是测试应用程序的代码:

<UserControl x:Class="SilverlightApplication1.Page"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    Width="400" Height="300">
    <Canvas x:Name="LayoutRoot" Background="White">

            <Border Canvas.Top="25" Canvas.Left="50">

                <Border.RenderTransform>
                    <TransformGroup>
                        <ScaleTransform ScaleX="3" ScaleY="3" />
                    </TransformGroup>
                </Border.RenderTransform>

                <Border.Projection>
                    <PlaneProjection RotationY="45"/>
                </Border.Projection>

                <Image Source="bw-test-pattern.jpg" Width="50" Height="40"/>
            </Border>

            <Border Canvas.Top="150" Canvas.Left="50">
                <Border.RenderTransform>
                    <TransformGroup>
                        <ScaleTransform ScaleX="1" ScaleY="1" />
                    </TransformGroup>
                </Border.RenderTransform>

                <Border.Projection>
                    <PlaneProjection RotationY="45"/>
                </Border.Projection>

                <Image Source="bw-test-pattern.jpg" Width="150" Height="120"/>
            </Border>

    </Canvas>
</UserControl>

因此,如果有人能够阐明为什么会发生这种情况,我会非常感激。建议也欢迎! :)

**更新**

只是为了澄清,如果投影平面旋转为0,则图像变得不模糊,因此仅在旋转期间图像模糊。

2 个答案:

答案 0 :(得分:1)

顶部图像的宽度设置为50,高度设置为40.因此它缩小了尺寸。然后将其缩放到正确的大小150,120。我猜Silverlight会缩小图像,并且由于性能优化而不会存储原始大小。保留“缩放”并为第一张图像设置正确的宽度和高度。

答案 1 :(得分:0)

看起来顶部图像正在被绘制时被过滤。从您的代码中:

<Image Source="bw-test-pattern.jpg" Width="50" Height="40"/>

表示顶部图片和

<Image Source="bw-test-pattern.jpg" Width="150" Height="120"/>

为底部。您有不同的图像尺寸,因此顶部可能会被放大,因此在插入缺失的像素时会模糊。

我不熟悉silverlight所以我不知道你如何控制过滤选项,但是将上面的顶线设置为与底部相同可能会修复它。