Tôi đang gọi một số mã sử dụng lớp BitmapData từ .NET. Tôi đã đạt được điều gì đó mà tôi không thể tìm thấy câu trả lời dứt khoát trên Googlespace.unlockbits, lockbits và try-finally
Bởi vì có vẻ như LockBits và UnlockBits luôn phải được gọi trong một cặp, tôi đang sử dụng này:
System.Drawing.Imaging.BitmapData tempImageData = tempImage.LockBits(
new System.Drawing.Rectangle(0, 0, tempImage.Width, tempImage.Height),
System.Drawing.Imaging.ImageLockMode.ReadOnly, tempImage.PixelFormat);
try
{
//use external library on the data
}//Exception not handled here; throw to calling method
finally
{
tempImage.UnlockBits(tempImageData);
}
(Tôi vừa mới được chơi đùa với những bằng tuyên bố, mà là rất hữu ích trong việc C#, đã cho tôi ý tưởng rằng tôi nên làm điều này.) Khó khăn là, ngay cả tài liệu của MS (http://msdn.microsoft.com/en-us/library/system.drawing.bitmap.unlockbits.aspx) không thấy nó phù hợp để sử dụng mẫu thử cuối cùng.
Có phải là cố gắng cuối cùng cần thiết hay không?
Cập nhật: Tôi có thể kết thúc việc bắt và sửa lại ngoại lệ, vì tôi không biết nó có thể là gì và không bắt chúng sớm hơn.
Cảm ơn!
Một điểm tốt, tại đây. Mã không phải là của chúng tôi; nó thuộc về một thư viện độc quyền mà chúng tôi làm việc cùng. – Chris