台灣最大程式設計社群網站
線上人數
593
 
會員總數:246044
討論主題:189631
歡迎您免費加入會員
討論區列表 >> C# >> Bitmap 記憶體不足
[]  
[我要回覆]
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
Bitmap 記憶體不足
價值 : 120 QP  點閱數:8374 回應數:20
樓主

Derrick
門外漢
0 20
340 30
發送站內信

想請問大家有遇過載入圖片而造成記憶體不足的問題嗎?

因為最近寫了一個程式

程式藉由載入或是掃描接受到影像後

將影像new成一個bitmap

因為需求關係

載入的影像可能會是高達1200dpi/9600*12000/109M的影像

目前寫法是一張圖會被new3~4個bitmap出來

在一些系統的限制下,可能這樣就會導致記憶體不足

是有想過縮圖來看,但是希望是能以不縮圖為主

因為想說縮圖後,後續的動作的架構就會有大幅更動

所以想來這請問看看是否有遇過類似的問題





搜尋相關Tags的文章: [ bitmap ] , [ 記憶體不足 ] ,
本篇文章發表於2012-02-24 09:44
16樓
回應

Jim
檢舉此回應
試了一下 9600 x 12000的圖片(預設32bppArgb)是可以new成功,但Graphic物件沒辦法使用DrawImage繪圖
借版請問是否Graphic也有其限制大小,程式如下,在DrawImage那裡會出錯

Bitmap MyBmp = new Bitmap(9600, 12000);
Graphic GP = Graphic.FromImage(MyBmp);
GP.DrawImage(AnotherBmp, 0, 0, MyBmp.Width, MyBmp.Height);
本篇文章回覆於2012-03-01 10:19
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
17樓
回應

香帥
檢舉此回應
我有用程式幫您試,大圖我也是無法配置成功,
不過我的記億體並不是像13樓所説是8G,也不是64位元cpu
看來較好的方法還是在記億體容許範圍內,像拼圖游戲一樣
切成多個小圖再拼成一個大圖,google地圖好像已有這種api可以呼叫
本篇文章回覆於2012-03-03 20:37
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
18樓
回應

Bill
檢舉此回應
我在 7F 早就講了, 但沒人鳥.
本篇文章回覆於2012-03-03 23:37
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
19樓
作者回應

Derrick
檢舉此回應
TO 香帥
拼圖的方式@_@"我會再試看看.因為我的方法是先將原圖載入到一個Bitmap然後再Bitmap上選擇要剪裁的地方
再畫到另外一個BITMAP上,在顯示在我要顯示的視窗上

TO Bill
沒有不理你拉,我有看到你的講法.可能是我們誤會你所寫的意思.我跟朋友討論過,他覺得如果使用你的方法
在重複載入圖片時,大圖會載入很久!所以才沒有使用你的方法.沒有不尊重你的意思,抱歉^^"
本篇文章回覆於2012-03-05 08:46
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
20樓
回應

blackwing
捐贈 VP 給 blackwing 檢舉此回應
用using ,在using 裡面用new 出來的bitmap
就不會忘了該物件是否dispose
本篇文章回覆於2018-08-08 13:40
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   

回覆
如要回應,請先登入.