簡體   English   中英

使用大位圖會導致 Out of Memory 異常

[英]Working with large bitmaps causes Out of Memory Exception

我需要即時編輯(增加高度)圖像。 該文件的尺寸大多為 5000*4000。 當我創建大尺寸的 bmp 並在 bmp 實例上調用 Graphics.DrawImage 方法時,我看到 memory 達到峰值水平。

如何擺脫 Out Of Memory 異常? 有沒有辦法在 c# 中處理大位圖?

問題是操作需要大量的 Memory。 你的大約需要一些千兆字節,所以解決方案可能是使用 Stream 並分塊處理文件。

或者最好的選擇是使用一些第三方庫。 下面是一些for.Net

鍛造

圖像調整器

也看看這個 SO question。

https://stackoverflow.com/questions/158756/what-is-the-best-image-manipulation-library

這取決於您的應用程序特定要求,從您的帖子中不是很清楚,但總的來說,使用大型媒體文件(圖像、聲音、視頻)我認為非常好的解決方案是

Memory 映射文件

將您的圖像保存在 memory 映射文件中的磁盤上,並調整它在磁盤上的大小,通過盡可能多地從您可能不需要快速訪問的大量數據中釋放您的 RAM(至少在那一刻)

希望這可以幫助。 問候。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM