当前位置: 首页 > 知识库问答 >
问题:

从磁盘读取png文件并将其保存回来后,文件大小增加

邵羽
2023-03-14

我目前正在做一个小程序,从磁盘读取png文件,做一些修改,并保存回来。除了一个小问题外,一切都运行得很顺利,在我将文件保存回磁盘后,它的大小总是增加,例如,27.1MB的文件会变成33.3MB。

Bitmap img = new Bitmap(<path to file>);
//omitted
img.Save(<path to new file>, ImageFormat.Png);

如何在不改变图像大小的情况下读取和保存图像?

共有1个答案

长孙哲
2023-03-14

你试过玩Ender.ColorDepth场吗?PNG还支持透明,并可能保存一些您的图像不需要的信息。

ImageCodecInfo pngCodec = ImageCodecInfo.GetImageEncoders().Where(codec => codec.FormatID.Equals(ImageFormat.Png.Guid)).FirstOrDefault();
if (pngCodec != null)
{
    EncoderParameters parameters = new EncoderParameters();
    parameters.Param[0] = new EncoderParameter(Encoder.ColorDepth, 24); //8, 16, 24, 32 (base on your format)
    image.Save(stream, pngCodec, parameters);
}

这里的其他信息:https://msdn.microsoft.com/en-us/library/system.drawing.imaging.encoder.colordepth(V=vs.110).aspx

 类似资料:
  • 我有一个: 我已经使用以下代码将此图像保存到PNG文件中: 当代码执行时,它会创建一个具有400 DPI和168 MB磁盘大小的PNG文件;这太过分了。

  • 下面的代码在内存中创建了一个文件。 我想把那个pdf文件保存在磁盘上以便查看。我将如何在python中实现它?

  • 下面是我的文本文件: 这是我的代码片段: 我得到以下异常: 我该怎么办?

  • 我有一些。S3上bucket中的zip文件。我需要解压并将其保存回bucket中,无需本地文件系统。 我知道S3是静态存储,但我可以通过给S3提供路径来解压S3本身上的文件。 我有以下问题。 > 我可以通过桶/文件夹的路径到,所以它解压文件直接在那里。 BufferedOutputStream=new BufferedOutputStream(new FileOutputStream(filePa

  • 问题内容: 我在从文件读取,处理其字符串并将其保存到UTF-8文件时遇到问题。 这是代码: 然后,我对可变文本进行一些处理。 接着 这样可以完美地输出文件,但是根据我的编辑器,它在iso 8859-15中可以输出。由于相同的编辑器将输入文件(在变量文件名中)识别为UTF-8,所以我不知道为什么会这样。据我的研究表明,注释行应该可以解决问题。但是,当我使用这些行时,产生的文件主要具有特殊字符的乱码,

  • 问题内容: 是否可以将JSON数据保存到本地文本文件中?因此,稍后我可以通过加载该文件再次使用它,并取回存储的JSON数据。其实我真正想做的是在文本文件中导出JSON数据,以便以后可以用作import.Any的建议或解决方案? 这是我要用于导出到文本的一些示例。 http://jsfiddle.net/k56eezxp/ 问题答案: 是否可以将JSON数据保存到本地文本文件中? 是。当前,链接的j