C#中如何将PNG流解码至已有的字节数组?
关于PNG流解码的内存复用问题
我来梳理下从流中解码PNG时,常见两种方案的局限:
- 最简便的方式是使用
Image.FromStream(...),但它有个核心问题:无法将PNG数据解码到已预先分配好的缓冲区中。每次调用这个方法,都得为图像数据重新分配新内存,后续这些临时内存还得依赖GC回收,在性能敏感的场景下会造成不必要的开销。 - 另一个可选的
PngBitmapDecoder,它的构造函数仅接收Stream引用,解码逻辑完全在内部完成,没有提供任何可以复用已有缓冲区的相关方法。这意味着每次解码都必须创建新的PngBitmapDecoder实例,同样没办法利用预先准备好的内存来优化内存分配效率。
内容的提问来源于stack exchange,提问作者Emil Kabirov
相关产品推荐
相关产品推荐

