拍摄低质量的屏幕画面

时间:2011-06-17 23:39:13

标签: c# image

我希望能够拍摄低质量的屏幕图像。我可以拍一张位图,但无论我做什么,都无法降低它的质量。

2 个答案:

答案 0 :(得分:3)

Image bmp1 = GetScreenImage ();

// Save the image as a GIF.
bmp1.Save("c:\\button.gif", System.Drawing.Imaging.ImageFormat.Gif);

Msdn for more

答案 1 :(得分:3)

我会尝试将图像转换为压缩的jpeg。关于jpegs的好处是你可以设置质量应该有多高(即你想要压缩多少):

注意:质量应在1到100之间(100是最大尺寸/最高质量,1是最小尺寸/最低质量。

public void save(string filename, Bitmap img, int quality)
{
   // quality encoding
   EncoderParameter qualParam = new EncoderParameter(Encoder.Quality, quality);

   // code for jpeg image type
   ImageCodecInfo jpegCodec = FindEncoderInfo("image/jpeg");


   EncoderParameters encoderParams = new EncoderParameters(1);
   encoderParams.Param[0] = qualParam;

   img.Save(filename, jpegCodec, encoderParams);
}

private ImageCodecInfo FindEncoderInfo(string mimeType)
{
   // search through all codecs for all formats
   ImageCodecInfo[] codecs = ImageCodecInfo.GetImageEncoders();

   for (int i = 0; i < codecs.Length; i++)
   {
      if (codecs[i].MimeType == mimeType)
      {
         return codecs[i];
      }
   }
   return null;
}