Съемка некачественного изображения экрана - PullRequest
6 голосов
/ 18 июня 2011

Я хочу иметь возможность снимать некачественное изображение на экране. Я могу сделать растровое изображение, но независимо от того, что я делаю, я не могу снизить его качество.

Ответы [ 2 ]

3 голосов
/ 18 июня 2011

Я бы попытался преобразовать изображение в сжатый 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;
}
3 голосов
/ 18 июня 2011
Image bmp1 = GetScreenImage ();

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

Msdn для более .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...