有什么方法可以将比特图保存在比JPEG较低的分辨率中?更改分辨率手册

  • 本文关键字:分辨率 JPEG 存在 方法 保存 c#
  • 更新时间 :
  • 英文 :


我有此代码:

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 --;
                            }

在此之前,我将位图保存为位图.bmp现在,我将其更改为jpeg .jpg,但是无论如何是否有可以更改以较低分辨率保存的JPG?也许手动更改以某种方式?

bitmap.Save(Path.Combine(_outFolder, _frameId.ToString("D6") + ".jpg"),ImageFormat.Jpeg);

而不是将其保存为JPEG,也许将其保存为JPEG,但分辨率要低得多。原因是我想显示每个位图直方图,并在同一时间显示图像/框架IT在图片框中自我,但是如果我能够在较低的分辨率中保存它,则保存过程将更快。

由于我想检查直方图,因此在这种情况下,图像/帧是否在低分辨率中显示。

解决方案对保存的图像文件根本没有影响。它是一个参考编号,它指示了创建图像的设备上图像的大小(以英寸为单位)。

当您在具有根本不同分辨率的设备上显示图像时,它至关重要。一个很好的例子是您在计算机上的油漆程序中创建的图像。然后在纸上打印。

在您的油漆程序中,您将创建1600 x 900像素的图像,并填充了笔记本电脑的整个屏幕,所有14英寸。如果然后将其打印在带有600个点分辨率的打印机上,则相同的图像将为1600/600 x 900/600 = 2.7 x 1.5英寸。它变成了纸上的邮票。

为了避免这种情况,图像已被重新缩放,因此在纸上也需要14英寸。图像中的分辨率参考编号允许此重新进行。您的油漆程序记录了显示器的分辨率,例如每英寸120点。当您打印并查看打印机的分辨率为600个点时,您知道您需要将图像打印5倍以使其在纸上的大小相同。

要获取图像以节省更快的速度,您需要使其更小。在像素中。位图(图像,大小)构造函数是一种简单的方法。