ソースの四角形を含むGDI画像からXNAテクスチャを作成する方法
XNAのTexture2Dが保持できるのはそれほど多くありません。使用するプロファイルに応じて、その制限は2048または4096ピクセル幅です。私の調査からわかる限り(私が間違っていれば誰かが訂正してくれます)GDI画像には、ユーザーのメモリを超えないこと以外に制限はありません。 (XNAのサイズ制限内で)GDI画像とソースの四角形を取得し、実行時にそのデータから新しいTexture2Dを作成する最も効率的な方法を探しています。このプロセスでは、XNA 4.0の乗算済みアルファも考慮に入れる必要があります。 または... Texture2D.FromStreamを取得し、ソースレクタングルも取得できるようにそれを適応させる方法。 要件は次のとおりです。 コンテンツパイプラインはありません。実行時にそれらをロードできる必要があります。 可能であれば、リーチプロファイルのみを使用してください。 Windowsのみに注意してください。移植性について心配する必要はありません。 TL; DR: 私は次のような方法が必要です: Texture2D Texture2DHelper.FromStream(GraphicsDevice, Stream, SourceRectangle); または Texture2D Texture2DHelper.FromImage(Image, SourceRectangle) できれば最初。 大局: 少しの間、ソースの四角形を無視して(物事を視覚化しやすくするために)、テクスチャ全体をGDIにロードし、完全にブルートフォースアプローチを使用してデータをTexture2Dに渡してみました。 using (System.Drawing.Image image = System.Drawing.Image.FromFile(path)) { int w = image.Width; int h = image.Height; System.Drawing.Bitmap bitmap = new System.Drawing.Bitmap(image); uint[] data = new uint[w * h]; for …