作者euleramon (X'mas)
站内C_Sharp
标题Re: [心得] 用LockBits处理影像时..
时间Sun Dec 31 19:41:57 2006
※ 引述《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)