无法在XNA上显示高分辨率图像

时间:2014-05-15 09:41:16

标签: c# image xna kinect-sdk

我正在使用XNA框架在Kinect上创建一个应用程序。它会产生问题当我添加高分辨率图像时,它只显示屏幕上一半的图像或25%的图像,如果它是极高分辨率的图像,但如果我上传360X480尺寸的图像,它会给我完整的图像。

我正在46"全屏运行应用程序。电视。

请告诉我,如果我上传超过360X480分辨率的图像,为什么它不会显示完整的图像。

        public Game1()
         {
             graphics = new GraphicsDeviceManager(this);


             graphics.PreferredBackBufferHeight = 1280;
             graphics.PreferredBackBufferWidth = 720;

             graphics.IsFullScreen = true;

修改

我正在使用以下代码加载和绘制图像。

defaultShirt= Content.Load<Texture2D>("kurta6");

   currentShirt = defaultShirt;    

  spriteBatch.Draw(currentShirt, new Rectangle
  (shirtXposition + x + 90, shirtYposition +   y + 50, customShirtHeight + 160, 
  customShirtWidth + 140), 
  new Rectangle(0, 0, 480, 360), 
  Color.White, 0, origin, SpriteEffects.None, 1);

我也使用以下方法从数据库添加图像。

        if (_image1Path[i] != "")
        {
            using (System.IO.FileStream stream = new System.IO.FileStream("D:/xampp/htdocs/boutique_cms/" + _image1Path[i], System.IO.FileMode.Open))
            {
                _image1Display[i] = Texture2D.FromStream(GraphicsDevice, stream);

                currentImagePath = _image1Display[i];
            }
        }

由于

2 个答案:

答案 0 :(得分:2)

如上所述,您将矩形切割为矩形(0,0,480,360) 你需要做的就是这样做。

这将绘制图像并将其缩放以适合下面指定的区域。

   spriteBatch.Draw(currentShirt, new Rectangle
       (shirtXposition + x + 90, shirtYposition + y + 50, customShirtHeight + 160,
       customShirtWidth + 140), Color.White);

答案 1 :(得分:1)

您正在使用rectangle(0,0,480,360)剪切图像。所以你实际上要说从vector2d(0,0)vector2d(480,360)拍摄一张图像,请尝试这样:

 spriteBatch.Draw(texture, new vector2d(x,y), color);