討論串[心得] 用LockBits處理影像時..
共 6 篇文章
首頁
上一頁
1
2
下一頁
尾頁

推噓1(1推 0噓 0→)留言1則,0人參與, 最新作者gz時間18年前 (2006/12/31 20:10), 編輯資訊
0
0
0
內容預覽:
這個結論有點離譜(汗...). 因為你使用了filestream來開啟檔案, 在image1的Clone同時也把這個file handle. 複製了一份到image2.. 這種reference的copy一但handle被close掉也連帶會影響到image2. 有書的話可以查查reference

推噓0(0推 0噓 0→)留言0則,0人參與, 最新作者euleramon (X'mas)時間18年前 (2006/12/31 19:33), 編輯資訊
0
0
0
內容預覽:
如果降寫 image2 = new Bitmap((Image)image1); 也不會有exception... 我剛回去檢查一下,發現好像是降的原因:. 如果寫成 image2 = (Bitmap)image1.Clone();. 然後再將image1的fileStream關掉:myImageF
(還有212個字)

推噓0(0推 0噓 0→)留言0則,0人參與, 最新作者gz時間19年前 (2006/12/23 14:21), 編輯資訊
0
0
0
內容預覽:
上面寫的實在是有點模糊, 但相信不會需要這樣多此二舉的邏輯.. 應該是你想把Format8bppIndexed的image鎖住進行不當操作被警告. (所以你以為LockBits導致的問題其實是Bitmap的預設行為). 你可能要review一下自己的程式碼了, 看看有沒有錯誤觀念造成的bug. --

推噓0(0推 0噓 1→)留言1則,0人參與, 最新作者euleramon (X'mas)時間19年前 (2006/12/23 13:41), 編輯資訊
0
0
0
內容預覽:
覆蓋原檔時,C#內建是需要把原始資源解lock後才行,否則會有exception出現... 當時我還需要存原始影像,後來測試發現原始影像需用像降的temp影像儲存才行:. image2 = new Bitmap((Image)image1.Clone());. 如果寫成. image2 = (Bit

推噓0(0推 0噓 0→)留言0則,0人參與, 最新作者gz時間19年前 (2006/12/23 08:55), 編輯資訊
0
0
0
內容預覽:
...不奇怪. 沒有明確指定的話, 建立一個Bitmap物件預設都是Format32bppArgb. 所以這也不是什麼bug, 跟LockBits也沒有關係. 真要說bug的話, 上面的程式. image2 = (Bitmap)image1.Clone();. 即可, PixelFormat不會變.
首頁
上一頁
1
2
下一頁
尾頁