スプライトをUWP a.k.aに保存する方法は? this SO postに記載されている2つの方法は、UWPでは機能しません。 (CroppedBitmap
クラスは動作せず、ImageBrush
クラスはViewbox
プロパティを持たない)。私はRenderTransform
とClip
をやってみましたが、どちらも成功しませんでした。どこへ行く?Windowsストアアプリの画像をクリッピングする
答えて
@bebbsと同じように、Win2Dは、UWPでスプライトを使用するのに適しています。 Win2Dは、GPUアクセラレーションを使用した即時モードの2Dグラフィックスレンダリング用の使いやすいWindowsランタイムAPIです。 Win2DのCanvasSpriteBatch Classはスプライトのシナリオに最適化されています。
CanvasSpriteBatchは、多くのスプライトが同じソースビットマップを使用して行で描画される場合は特に、複数のビットマップをより効率的に引き出すことを可能にし、DrawImage APIよりも優れた性能を有しています。 CanvasSpriteBatchは、以下の機能をサポートしています
- スプライトは、自分の位置、スケール、回転、色合いで描画することができる(Draw OverloadとDrawFromSpriteSheet Overload)
- 個々のスプライトは、水平方向または垂直方向に反転されてもよいです。 (CanvasSpriteFlip)
- スプライトシート(DrawFromSpriteSheet Overload)
- スプライトは、スプライトシートのスプライトの間にパディングを追加する必要性を除去し、clamped to a source rectangleとすることができます。
- パフォーマンス向上のため、バッチはsorted by bitmapにすることができます。
CanvasSpriteBatchの使用方法の詳細については、CanvasSpriteBatch Class documentとGitHubのSprite Sheets sampleを参照してください。
アップデート:私は
<Rectangle Width="128" Height="192">
<Rectangle.Fill>
<ImageBrush AlignmentX="Left"
AlignmentY="Top"
ImageSource="Assets/WizardIdleRight.png"
Stretch="None">
<ImageBrush.Transform>
<TranslateTransform x:Name="SpriteSheetOffset" X="0" Y="-384" />
</ImageBrush.Transform>
</ImageBrush>
</Rectangle.Fill>
</Rectangle>
をここに:
あなたがWin2Dを使用したくない場合は、あなたが欲しいものachiveする一つの簡単な方法は、次のようにTransformでImageBrushを使用していますSprite Sheets sampleにWizardIdleRight.pngを使用した場合、オフセットをTranslateTransformに変更することができます私たちが望むスプライト
ありがとう、非常に有益なジェイ。私が開発しているゲームはシンプルなカードゲームで、52枚のカード画像をすべて1枚のPNGに収めています。私が探していたのは、このイメージをアプリケーションレベルのリソースとしてロードし、各イメージ要素の 'Clip'プロパティを割り当てて、対応するカードを表示することでした。より激しい、インタラクティブな、リアルタイムのゲームのためのより大きな銃のような私にWin2Dのサウンド。またはそれは? – dotNET
XAMLでこれを書いているのであれば、好奇心を払わないのはなぜですか?DataTemplateではなく、スーツグリフだけ(あるいはもっと良い意味ではシンボルフォント)のグラフィックリソースを使用します。これにより、サイズのアプリケーションがずっと小さくなり、さまざまな解像度にわたってスケールが向上します。 – ibebbs
@dotNET Win2Dを使用したくない場合は、ImageBrushをTransformで使用するのが簡単です。更新された回答を確認してください。 –
- 1. Windowsストアアプリで画像を拡大する
- 2. HTML5キャンバス画像クリッピング
- 3. WindowsストアアプリとF#
- 4. Windowsのストアアプリのアップデート
- 5. カスタムフォントのコードビハインド - Windowsストアアプリ
- 6. WindowsストアアプリとiFrameクッキー
- 7. Windowsストアアプリの検索キーワード
- 8. Windowsストアアプリのタイマーはどこですか?
- 9. Fabric.jsクリッピングされたスプライトと個々の画像の効率
- 10. カメラのプレビューをクリッピングして画像の上半分だけを表示する
- 11. 画像のエッジをクリッピングする最近接フィルタリングを使用したグラフィックをwinforms
- 12. Pythonで画像をクリッピング/バックグラウンドでプログラム的に削除
- 13. WindowsストアアプリHttpClientの進捗状況
- 14. Windowsストアアプリ.NET GetCurrentMethod()。DeclaringTypeの代替
- 15. Windowsモバイルエミュレータカメラの画像を設定する
- 16. Windowsのウェブブラウザーで画像をプリロードする
- 17. Windowsストアアプリを更新するとどうなりますか?
- 18. windowsフォームを画像に変換する
- 19. Windows Phoneで画像を回転する
- 20. Windows Mobile 6で画像をアップロードする。
- 21. UWPでWindowsストアアプリをプログラムでインストールするには?
- 22. Windowsベースのドッカー画像Windows Server 2016 TP5
- 23. FileNotFoundException WindowsストアアプリのAssetsフォルダからJSONファイルを読み取る
- 24. Windows以外のストアアプリのタイルカラーを変更しますか?
- 25. Windowsフォームの画像アップロードエラー
- 26. windows phone 7画像のメタデータ
- 27. Windowsフォームの画像DataGridView
- 28. スマートアプリケーションバナー; WindowsストアアプリAndroid/Google Playに対応するHTMLメタタグですか?
- 29. C#Windowsフォームで大量の画像を描画する
- 30. Windowsストアアプリでレジストリ値を読み取る方法は?
実際に何をしようとしているのかを明確にすることはできますか?スプライトでは、すべての状態のすべてのスプライトイメージを含む単一の大きなビットマップが必要であり、スプライトのアニメーションを実行するためにクリッピングを動的に変更しようとしていることを推測しています。これが本当にあなたがしようとしているものなら、私は[Win2D](https://github.com/Microsoft/Win2D)を調査することをお勧めします。 – ibebbs
@ibebbs:あなたの理解は正しいです。 WPFとSLでは、純粋なXAMLでコードを書くことなくこれを行うことができます(質問に投稿したSOのリンクを参照)。私はすでにグーグルでWin2Dを見た。簡単な方法が見つからなければ、私は最終的な手段としてそれを使わなければならないように見えます。 – dotNET