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倍大的图像才能在纸上得到同样大小的图像 为了更快地保存图像,需要将其缩小。以像素为单位。位图(图像、大小)构造函数是一种简单的方法