Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/260.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 拍摄低质量的屏幕照片_C#_Image - Fatal编程技术网

C# 拍摄低质量的屏幕照片

C# 拍摄低质量的屏幕照片,c#,image,C#,Image,我希望能够拍摄低质量的屏幕图像。我可以拍摄位图图片,但无论我做什么,我都不能降低它的质量 Image bmp1 = GetScreenImage (); // Save the image as a GIF. bmp1.Save("c:\\button.gif", System.Drawing.Imaging.ImageFormat.Gif); .我会尝试将图像转换为压缩的jpeg。JPEG的好处在于,您可以设置质量应该有多高(即您希望压缩多少): 注:质量应介于1和100之间(100为最大

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

Image bmp1 = GetScreenImage ();

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

.

我会尝试将图像转换为压缩的jpeg。JPEG的好处在于,您可以设置质量应该有多高(即您希望压缩多少):

注:质量应介于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;
}
public void保存(字符串文件名、位图img、int-quality)
{
//质量编码
EncoderParameter qualParam=新的EncoderParameter(Encoder.Quality,Quality);
//jpeg图像类型的代码
ImageCodecInfo jpegCodec=FindEncoderInfo(“图像/jpeg”);
EncoderParameters encoderParams=新的EncoderParameters(1);
encoderParams.Param[0]=qualParam;
保存(文件名、JPEG编解码器、编码器参数);
}
私有ImageCodeInfo FindEncoderInfo(字符串mimeType)
{
//在所有编解码器中搜索所有格式
ImageCodecInfo[]codecs=ImageCodecInfo.GetImageEncoders();
对于(int i=0;i
你的意思是减少颜色深度还是减少像素数?尽我所能减少文件大小。还是希望保持分辨率并将其转换为有损压缩格式,如png或jpeg?同样,任何可以减少文件大小的内容。我正在尝试制作一个屏幕共享应用程序作为测试,因此我需要将图像流式传输一个网络。因此,它们的大小必须非常小。您还可以通过计算自上一帧以来屏幕的哪些区域发生了变化来减小大小,也许仅此而已