Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/276.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/70.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# 有没有办法以低于Jpeg的分辨率保存位图?要更改解决方案手册?_C# - Fatal编程技术网

C# 有没有办法以低于Jpeg的分辨率保存位图?要更改解决方案手册?

C# 有没有办法以低于Jpeg的分辨率保存位图?要更改解决方案手册?,c#,C#,我有以下代码: int ISampleGrabberCB.BufferCB(double sampleTime, IntPtr pBuffer, int bufferLen) { if (Form1.ExtractAutomatic == true) { using (var bitmap = new Bitmap(_width, _height, _width * 3, PixelFormat.F

我有以下代码:

int ISampleGrabberCB.BufferCB(double sampleTime, IntPtr pBuffer, int bufferLen)
        {

            if (Form1.ExtractAutomatic == true)
            {
                using (var bitmap = new Bitmap(_width, _height, _width * 3, PixelFormat.Format24bppRgb, pBuffer))
                {
                    if (!this.Secondpass)
                    {
                        long[] HistogramValues = Form1.GetHistogram(bitmap);
                        Form1.Histograms.Add(HistogramValues);
                        long t = Form1.GetTopLumAmount(HistogramValues, 1000);
                        Form1.averagesTest.Add(t);

                    }
                    else
                    {

                        if (_frameId > 0)
                        {
                            double t = Form1.averagesTest[_frameId] / 1000.0 - Form1.averagesTest[_frameId - 1] / 1000.0;
                            w.WriteLine("averagesTest >>>  " + t);
                            if (_frameId == 1049)
                            {
                                w.Close();
                            }
                            if (Form1.averagesTest[_frameId] / 1000.0 - Form1.averagesTest[_frameId - 1] / 1000.0 > 60.0)                                {
                                count = 6;
                            }

                            if (count > 0)
                            {
                                bitmap.RotateFlip(RotateFlipType.Rotate180FlipX);
                                bitmap.Save(Path.Combine(_outFolder, _frameId.ToString("D6") + ".jpg"),ImageFormat.Jpeg);
                                count --;
                            }
在此之前,我将位图保存为bitmap.bmp,现在我将其更改为Jpeg.jpg,但是是否仍然可以将jpg更改为以较低分辨率保存?也许是人工改变

bitmap.Save(Path.Combine(_outFolder, _frameId.ToString("D6") + ".jpg"),ImageFormat.Jpeg);
相反,只将其保存为jpeg可能会将其保存为jpeg,但分辨率要低得多。 原因是我想显示每个位图直方图,同时在pictureBox中显示图像/帧,但如果能够以较低的分辨率保存,则保存过程会更快


因为我想检查直方图,所以我不介意在这种情况下图像/帧是否以低分辨率显示。

分辨率对保存的图像文件没有任何影响。它是一个参考号,表示创建图像的设备上图像的大小(以英寸为单位)

在分辨率完全不同的设备上显示图像时,这一点变得非常重要。一个很好的例子是您在计算机上的绘制程序中创建的图像。然后在纸上打印

比如说,在你的画图程序中,你可以创建一个1600 x 900像素的图像,它填充了你笔记本电脑的整个屏幕,全部14英寸。如果用每英寸600点的分辨率在打印机上打印,那么相同的图像将为1600/600 x 900/600=2.7 x 1.5英寸。它变成了纸上的邮票

为了避免这种情况,该图像已重新缩放,因此在纸上也需要14英寸。图像中的分辨率参考号允许重新缩放。你的绘画程序记录了显示器的分辨率,比如说每英寸120点。当你打印出来,看到打印机的分辨率是每英寸600点时,你就知道你需要打印5倍大的图像才能在纸上得到同样大小的图像


为了更快地保存图像,需要将其缩小。以像素为单位。位图(图像、大小)构造函数是一种简单的方法。

分辨率对保存的图像文件没有任何影响。它是一个参考号,表示创建图像的设备上图像的大小(以英寸为单位)

在分辨率完全不同的设备上显示图像时,这一点变得非常重要。一个很好的例子是您在计算机上的绘制程序中创建的图像。然后在纸上打印

比如说,在你的画图程序中,你可以创建一个1600 x 900像素的图像,它填充了你笔记本电脑的整个屏幕,全部14英寸。如果用每英寸600点的分辨率在打印机上打印,那么相同的图像将为1600/600 x 900/600=2.7 x 1.5英寸。它变成了纸上的邮票

为了避免这种情况,该图像已重新缩放,因此在纸上也需要14英寸。图像中的分辨率参考号允许重新缩放。你的绘画程序记录了显示器的分辨率,比如说每英寸120点。当你打印出来,看到打印机的分辨率是每英寸600点时,你就知道你需要打印5倍大的图像才能在纸上得到同样大小的图像

为了更快地保存图像,需要将其缩小。以像素为单位。位图(图像、大小)构造函数是一种简单的方法