[XNA , Texture2D] Texture2D from Bitmap (very Simple)


Content.Load<T> 로 불러올수 있는것은 *.xnb밖에 없다.

동적으로 캡춰되거나 연산된 비트맵을 받아오기가 영 까다롭다.

그래서 매우 간단한 비트맵 복사 방법을 생각했다.


Created with colorer-take5 library. Type 'csharp'

private Texture2D tx;
        protected override void LoadContent()
        {
            spriteBatch = new SpriteBatch(GraphicsDevice);

            //비트맵을 만든다.
            Bitmap b = new Bitmap(@"c:\a.jpg");
            //xna �� 컬러배열을 타겟 비트맵 크기만큼 생성한다.
            xColor[] pixels = new xColor[b.Width * b.Height];
            //x , y 루프를 돌려 비트맵�� 컬러를 검출��여 xna 컬러배열에 넣는다.
            for (int y = 0; y < b.Height; ++y)
                for (int x = 0; x < b.Width; ++x)
                {
                    cColor c = b.GetPixel(x, y);
                    pixels[(y * b.Width) + x] = new xColor(c.R, c.G, c.B, c.A);
                }
            //texture2d를 생성��고 컬러를 적용한다.
            tx = new Texture2D(graphics.GraphicsDevice, b.Width, b.Height, 1, TextureUsage.None, SurfaceFormat.Color);
            tx.SetData<xColor>(pixels);


        }
실시간으로 캡춰가 될때 퍼포먼스는 아직 무리수
 
 
Yamecoder 야매코더_
XNA 2010.12.04 02:28
Powerd by Tistory, designed by criuce
rss