如何减少从网络摄像头捕获的图像的大小

时间:2014-01-15 09:52:01

标签: silverlight webcam

我正在使用网络摄像头在Silverlight中捕获图像。有没有办法配置网络摄像头以捕获较低分辨率的图像?

1 个答案:

答案 0 :(得分:0)

http://programmerpayback.com/2010/01/21/use-silverlight-to-resize-images-and-increase-compression-before-uploading/

public static WriteableBitmap GetImageSource(Stream stream, double maxWidth, double maxHeight)
{
      BitmapImage bmp = new BitmapImage();
      bmp.SetSource(stream);

      Image img = new Image();
      img.Effect = new DropShadowEffect() { ShadowDepth = 0, BlurRadius = 0 };
      img.Source = bmp;

      double scaleX = 1;
      double scaleY = 1;

      if (bmp.PixelHeight > maxHeight)
          scaleY = maxHeight / bmp.PixelHeight;
      if (bmp.PixelWidth > maxWidth)
          scaleX = maxWidth / bmp.PixelWidth;

      // maintain aspect ratio by picking the most severe scale
      double scale = Math.Min(scaleY, scaleX);

      return new WriteableBitmap(img, new ScaleTransform() { ScaleX = scale, ScaleY = scale });
  }