2014-02-17 27 views
0

該函數將圖像流旋轉90度。 後,我把它叫做5-6倍的Windows Phone我SystemOutOfMemory例外使用流後SystemOutOfMemory異常

private WriteableBitmap _rotate(Stream stream) 
{ 
    var bmp = new BitmapImage(); 
    bmp.SetSource(stream); 
    var src = new WriteableBitmap(bmp); 
    var w = src.PixelWidth; 
    var h = src.PixelHeight; 
    var p = src.Pixels; 
    var dst = new WriteableBitmap(h, w); 
    var i = 0; 
    var rp = dst.Pixels; 
    for (var x = 0; x < w; x++) { 
     for (var y = h - 1; y >= 0; y--) { 
      var srcInd = y * w + x; 
      rp[i] = p[srcInd]; 
      i++; 
     } 
    } 
    /* Trying to free memory, but nothing of that works */ 
    //bmp = null; 
    //src = null; 
    return dst; 
} 

我知道該功能的問題,因爲當我不打電話 - 一切工作正常。

回答

0

嘗試使用它:

GC.Collect(); 
GC.WaitForPendingFinalizers(); 
+0

我認爲這是不好的做法手動調用GC。 – Wayne