我正在開發一個應用程序,使用移動設備拍攝照片並使用web服務發送。但是在拍完4張照片後,我在下面的代碼中得到了OutOfMemoryException
。我嘗試撥打GC.Collect()
,但它也沒有幫助。也許這裏的某個人可能會給我一個如何處理這個問題的建議。OutOfMemoryException在移動設備
public static Bitmap TakePicture()
{
var dialog = new CameraCaptureDialog
{
Resolution = new Size(1600, 1200),
StillQuality = CameraCaptureStillQuality.Default
};
dialog.ShowDialog();
// If the filename is empty the user took no picture
if (string.IsNullOrEmpty(dialog.FileName))
return null;
// (!) The OutOfMemoryException is thrown here (!)
var bitmap = new Bitmap(dialog.FileName);
File.Delete(dialog.FileName);
return bitmap;
}
的功能是由一個事件處理函數調用:
private void _pictureBox_Click(object sender, EventArgs e)
{
_takePictureLinkLabel.Visible = false;
var image = Camera.TakePicture();
if (image == null)
return;
image = Camera.CutBitmap(image, 2.5);
_pictureBox.Image = image;
_image = Camera.ImageToByteArray(image);
}
我會稍微修改你的代碼 - 它設置picturebox圖像,我會首先處理任何現有的圖像,如果(_pictureBox.Image!= null)_pictureBox.Image.Dispose()。 – ctacke 2009-02-27 14:59:13