1

Ok、

そこで、個々の要素で拡大縮小された画像に依存するアプリケーションを作成しようとしました。これらの画像は裏返すことができますが、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の場合、画像はぼやけていないので、回転中にのみ画像がぼやけます。

4

2 に答える 2

1

一番上の画像の幅は 50 に設定され、高さは 40 に設定されているため、縮小されています。その後、適切なサイズの 150、120 に拡大します。Silverlight は画像を縮小し、パフォーマンスの最適化のために元のサイズを保存しないと思います。スケール アウトのままにして、最初の画像の適切な幅と高さを設定します。

于 2010-03-16T12:17:32.893 に答える
0

一番上の画像が描画されているときにフィルタリングされているように見えます。あなたのコードから:

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

トップ画像と

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

下のもののために。画像サイズが異なるため、上の画像が拡大されている可能性があり、不足しているピクセルを補間するときにぼやけている可能性があります。

私は Silverlight に詳しくないので、フィルタリング オプションをどのように制御するかはわかりませんが、上の行を下の行と同じに設定すると修正される可能性があります。

于 2010-03-16T11:21:22.690 に答える