Re: [心得] 用LockBits處理影像時..

看板C_Sharp (C#)作者 (X'mas)時間18年前 (2006/12/31 19:33), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串5/6 (看更多)
※ 引述《euleramon (X'mas)》之銘言: : ※ 引述《gz ()》之銘言: : : ... : : 不奇怪 : : 沒有明確指定的話, 建立一個Bitmap物件預設都是Format32bppArgb : : 所以這也不是什麼bug, 跟LockBits也沒有關係 : : 真要說bug的話, 上面的程式 : : image2 = (Bitmap)image1.Clone(); : : 即可, PixelFormat不會變. : : 不需要又是new又是upcasting的多此二舉 : 覆蓋原檔時,C#內建是需要把原始資源解lock後才行,否則會有exception出現.. : 當時我還需要存原始影像,後來測試發現原始影像需用像降的temp影像儲存才行: : image2 = new Bitmap((Image)image1.Clone()); : 如果寫成 : image2 = (Bitmap)image1.Clone(); : 還是會有 exception : 我不曉得確切原因為何,但就先把這方式硬記下來 @@" 如果降寫 image2 = new Bitmap((Image)image1); 也不會有exception.. 我剛回去檢查一下,發現好像是降的原因: 如果寫成 image2 = (Bitmap)image1.Clone(); 然後再將image1的fileStream關掉:myImageFileNameStream.Close(); 如果再access影像image2,就會產生降的例外訊息 "Cannot access a closed file" 所以我感覺 .net 裡的 Class a = object.Clone() 好像並不能完全取代 Class a = new Class(object) --- 不曉得對不對".. 不過還是分享看看心得 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.116.246.39 ※ 編輯: euleramon 來自: 140.116.246.39 (12/31 19:42) ※ 編輯: euleramon 來自: 140.116.246.39 (12/31 19:42)
文章代碼(AID): #15bw0V2S (C_Sharp)
文章代碼(AID): #15bw0V2S (C_Sharp)