【问题标题】:Bitmap.Save Parameter is not validBitmap.Save 参数无效
【发布时间】:2013-02-16 12:51:47
【问题描述】:

我正在使用Bitmap.Save(location,coded,parameters)保存 tiff 图像的第一帧:使用的编码方案是 Tiff 格式。然后我使用saveadd() 等等。在 win 7 64 位上工作就像一个魅力,但在 32 位或更早的 Windows 版本上不起作用。

经过研究,我发现这可能是由于 tiff 图像编码处理方式与 GDI+ 之前的不同。

有没有办法在不进行任何重大改变的情况下克服这个问题?

来源:

Parameter is not valid calling Bitmap.Save()

http://social.msdn.microsoft.com/Forums/fi-FI/netfxbcl/thread/1585c562-f7a9-4cfd-9674-6855ffaa8653

【问题讨论】:

  • 所以,你链接到你问的确切问题,不是吗?我知道这是一个旧帖子,但重复就是重复。
  • @Christian '参数无效'是 Save() 函数的错误
  • @SethBattin 这是相关问题,没有解决方案。
  • @SethBattin “这个问题之前已经被问过并且已经有了答案。如果这些答案不能完全解决您的问题,请提出一个新问题。” - 这就是 SE 对 DQ 的评价。

标签: c# encoding bitmap gdi+ tiff


【解决方案1】:

好的,终于找到解决方案了。问题在于作为 Save() 的输入参数之一给出的压缩格式以及 GDI+ 的工作原理。

解决方案 1:

需要将压缩格式更改为该窗口支持的格式。例如).net 中的(long)EncoderValue.CompressionLZW 压缩在这种情况下有效,而不是(long)EncoderValue.CompressionCCITT4

但是图像的大小会比 CCITT4 生成的要大。 此外,CCITT4 仅适用于双色调图像,而 LZW 适合大多数图像。 因此,请提前考虑这些问题,因为在大多数使用 tiff 图像创建的地方,使用的压缩和这个问题并不重要。

或者可以在下面找到替代解决方案[我还没有尝试过]

解决方案 2:

http://social.msdn.microsoft.com/Forums/en-US/netfxbcl/thread/1585c562-f7a9-4cfd-9674-6855ffaa8653/

补充阅读:

所以关于选择什么压缩以及为什么会出现问题,您可以参考:

https://stackoverflow.com/questions/3478292/whats-the-recommended-tiff-compression-for-color-photos/3480411#3480411

【讨论】:

    【解决方案2】:

    质量参数必须使用“long”

    EncoderParameters parametre = new EncoderParameters(1);
    parametre.Param[0] = new EncoderParameter(System.Drawing.Imaging.Encoder.Quality, (quality as long));
    

    EncoderParameters parametre = new EncoderParameters(1);
    parametre.Param[0] = new EncoderParameter(System.Drawing.Imaging.Encoder.Quality, 90L);
    

    long quality=90; //
    EncoderParameters parametre = new EncoderParameters(1);
    parametre.Param[0] = new EncoderParameter(System.Drawing.Imaging.Encoder.Quality, quality);
    

    【讨论】:

    • 是的,我使用了不同的参数,但它的值很长。我猜没有问题
    • 我使用 MultiFrame、FrameDimesion 和 Flus 作为 Long
    • 我对所有参数使用(长)类型转换。
    • Mustafa 你拯救了我的一天。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-07-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多