Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/317.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 Resizing - Fatal编程技术网

C# 当试图缩小图像大小时,图像大小变大

C# 当试图缩小图像大小时,图像大小变大,c#,image-resizing,C#,Image Resizing,我试图调整图片的jpg格式,降低它的分辨率,以便它是更小的,当我下载到网站的HTML。使用链接中的教程: 我设法调整了分辨率,包括在需要时进行裁剪。我的问题是图像的实际大小变大了,而不是像我预期的那样变小了 有什么想法吗?如果在缩小尺寸时JPEG图像文件变得越来越大,那是因为您使用比原始图像更高的质量设置来保存它。如果在缩小尺寸时JPEG图像文件变得越来越大,这是因为您使用比原始图像更高的质量设置保存图像。使用压缩图像格式(如jpeg)时,这是很正常的。这是由减小图像大小时选择的过滤器引起的。

我试图调整图片的jpg格式,降低它的分辨率,以便它是更小的,当我下载到网站的HTML。使用链接中的教程:

我设法调整了分辨率,包括在需要时进行裁剪。我的问题是图像的实际大小变大了,而不是像我预期的那样变小了


有什么想法吗?

如果在缩小尺寸时JPEG图像文件变得越来越大,那是因为您使用比原始图像更高的质量设置来保存它。

如果在缩小尺寸时JPEG图像文件变得越来越大,这是因为您使用比原始图像更高的质量设置保存图像。

使用压缩图像格式(如jpeg)时,这是很正常的。这是由减小图像大小时选择的过滤器引起的。例如,图形类的默认选择是InterpolationMode.Bilinear。这是一个非常好的工作,使一个好看的图像缩小版本。但是由于过滤算法的存在,要在图像中添加很多额外的颜色是有代价的。生成的图像压缩效果不如原始图像,实际上可能需要更多的存储空间


您必须选择一个质量较低的过滤器来避免这种情况,如InterpolationMode.NearestNeighbor。是的,看起来没那么好。通常,您应该避免重新压缩已经以有损格式(如jpeg)压缩的图像。

使用压缩图像格式(如jpeg)时,这是很正常的。这是由减小图像大小时选择的过滤器引起的。例如,图形类的默认选择是InterpolationMode.Bilinear。这是一个非常好的工作,使一个好看的图像缩小版本。但是由于过滤算法的存在,要在图像中添加很多额外的颜色是有代价的。生成的图像压缩效果不如原始图像,实际上可能需要更多的存储空间



您必须选择一个质量较低的过滤器来避免这种情况,如InterpolationMode.NearestNeighbor。是的,看起来没那么好。一般来说,您应该避免重新压缩已经以有损格式(如jpeg)压缩的图像。

所说的“实际大小”是指字节还是像素?在过去,我使用过这样的方法:@Jon Skeet By actual size我指的是字节。所说的“实际大小”你指的是字节还是像素?过去我用过:@Jon Skeet按实际大小我指的是字节。当你说我应该避免重新压缩已经压缩的图像时,你认为我试图压缩的图像已经压缩了?或者这是一个一般性的陈述?这是最合乎逻辑的结论。不确定您为什么不告诉我们您使用的是哪种图像格式,没有理由对其保密。JPEG不使用索引颜色,因此使用InterpolationMode.NearestNeighbor阻止其创建新颜色不会使其压缩得更好,相反。@Hans Passant当然这不是秘密:)。通常,我尝试重新调整大小的图像是jpg或jpeg格式。它是jpeg格式,示例代码使用InterpolationMode.HighQualityBicubic,因此我的答案中的所有内容都适用。修补InterpolationMode属性以查看对结果图像的影响。当您说我应该避免重新压缩已压缩的图像时,您认为我尝试压缩的内容已压缩?或者这是一个一般性的陈述?这是最合乎逻辑的结论。不确定您为什么不告诉我们您使用的是哪种图像格式,没有理由对其保密。JPEG不使用索引颜色,因此使用InterpolationMode.NearestNeighbor阻止其创建新颜色不会使其压缩得更好,相反。@Hans Passant当然这不是秘密:)。通常,我尝试重新调整大小的图像是jpg或jpeg格式。它是jpeg格式,示例代码使用InterpolationMode.HighQualityBicubic,因此我的答案中的所有内容都适用。修补InterpolationMode属性以查看对结果图像的影响。我尝试使用InterpolationMode属性,但不管文件大小如何。有一件事需要提及的是,我试图调整jpg文件的大小是5kb(结果是一个27KB的文件),这可能意味着它以前已经被压缩过。@mashtagidi:您应该使用
InterpolationMode.HighQualityBicubic
来获得压缩效果最好的图像。使用
NearestNeighbor
将使大多数图像更难压缩。如果原始图像只有5 kb,并且它足够大,以至于您想要将其缩小,那么它可能会以相当低的质量设置保存。保存文件时,请降低“质量”设置,直到获得所需的文件大小,然后查看图像质量是否可以接受。谢谢。“保存文件时降低质量设置”。我怎样才能控制它?我在Image类中使用了save()函数,它是一个内置函数。@mashtagidi:内置方法使用最高质量设置(100),除非您使用其他设置指定编码器参数。使用链接到的教程中的saveJpeg方法。我尝试过使用InterpolationMode属性,但不管文件大小如何。有一件事需要提及的是,我试图调整jpg文件的大小是5kb(结果是一个27KB的文件),这可能意味着它以前已经被压缩过。@mashtagidi:您应该使用
InterpolationMode.HighQualityBicubic
来获得压缩效果最好的图像。使用
NearestNeighbor
将使大多数图像更难压缩。如果原始图像只有5 kb,并且它足够大,以至于您想要将其缩小,那么它可能会以相当低的质量设置保存。保存文件时,请降低“质量”设置,直到获得所需的文件大小,然后查看图像质量是否可以接受。谢谢。“保存文件时降低质量设置”。霍