从流中解码PNG的最简单方法是:
Bitmap png = new Bitmap(Image.FromStream(pngStream));
但这不允许我们将PNG解码为现有缓冲区。因此,如果我们使用这种方式,Image.FromStream(..)必须在每次调用时为图像数据分配新的内存(然后GC每次都必须收集使用过的内存)。
还有PngBitmapDecoder,但是它在构造函数中使用Stream引用并在构造函数内解码PNG,并且没有其他函数可以执行它,所以我每次都必须创建新的PngBitmapDecoder。
所以我想要一些方法将引用/指针传递给现有的字节缓冲区,因此PNG解码器每次都使用它,没有冗余的分配/解除分配。
是否有其他标准方法可以执行此操作,或者您可以建议某些第三方库 .Net 4.6.2 执行此操作?