Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/9.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#_.net 3.5_Image Processing - Fatal编程技术网

C# 调整图片大小的基础知识或图片大小发生了什么变化?

C# 调整图片大小的基础知识或图片大小发生了什么变化?,c#,.net-3.5,image-processing,C#,.net 3.5,Image Processing,我正在编写一个程序,用于调整图片大小,如下所示: Image originalImage = Image.FromFile(pathToOriginalPicture); Bitmap b = new Bitmap(newWidth, newHeight); Graphics g = Graphics.FromImage(b); g.DrawImage(originalImage, 0, 0, newWidth, newHeight); g.Dispose(); b.Save(pathTo

我正在编写一个程序,用于调整图片大小,如下所示:

Image originalImage = Image.FromFile(pathToOriginalPicture);

Bitmap b = new Bitmap(newWidth, newHeight);
Graphics g = Graphics.FromImage(b);

g.DrawImage(originalImage, 0, 0, newWidth, newHeight);
g.Dispose();

b.Save(pathToOutputPicture, ImageFormat.Jpeg);
我试图设置:

newWidth = originalImage.Width;
newHeight = originalImage.Height;
结果是,重新压缩的图片文件变为~900K,而原始文件变为~4M

为什么会这样? 原始图片的质量比调整大小的图片好吗?怎么做

我在Photoshop中打开了这两张图片,我看到原来的图片是72ppi,而调整大小的图片变成了96ppi。为什么呢?我能控制这个吗


非常感谢您抽出时间

除了设置DPI、压缩级别设置等所需的格式之外,请检查保存功能中是否存在接受此类输入的重载。请参阅。

您没有告诉我们您的图片的原始格式,而是将其保存为JPEG格式:

b、 保存(pathToOutputPicture,ImageFormat.Jpeg)

JPEG是一种有损压缩格式

除了有损外,JPEG还可以输出不同质量的图像(可配置)

这就是你的文件大小的变化:它正在缩小,因为你从无损格式变成有损JPEG,或者因为你从JPEG变成了质量较低的JPEG


因此减小了尺寸。

我查看了此文档。我必须承认,看起来很复杂。很多细节。。。您能推荐一种简单的方法将JPG文件调整到指定的大小(以像素为单位的宽度和高度),以便输出的图片具有最佳质量吗?谢谢实际上,我从一个JPG转到另一个JPG,但我不知道我在Save函数中使用的质量。默认值是什么?我仍然不明白我的示例中的输出图片是否比原始图片更差。我想,是的,因为文件大小变得非常小,但我不明白为什么会更糟。谢谢你抽出时间!