2013-05-28 72 views
0

是否可以將一個WriteableBitmap數組作爲整體保存到磁盤上的一個文件中,並將其作爲一個整體進行檢索?將一個WriteableBitmap數組保存到文件

+0

WinRT,WPF,Silverlight? – Denis

+0

@Denis我對WinRT感興趣,但如果你知道的話,我也會對WPF感興趣。 – P5music

回答

0

您可以從WritableBitmap中檢索字節數組。並且該數組可以保存並讀取到文件中。像這樣的東西;

WritableBitmap[] bitmaps; 

// Compute total size of bitmaps in bytes + size of metadata headers 
int totalSize = bitmaps.Sum(b => b.BackBufferStride * b.Height) + bitmaps.Length * 4; 

var bitmapData = new byte[totalSize]; 

for (int i = 0, offset = 0; i < bitmaps.Length; i++) 
{ 
    bitmaps[i].Lock(); 

    // Apppend header with bitmap size 
    int size = bitmaps[i].BackBufferStride * bitmaps[i].Height; 
    byte[] sizeBytes = BitConverter.GetBytes(size); 
    Buffer.BlockCopy(sizeBytes, 0, bitmapData, offset, 4); 

    offset += 4; 

    // Append bitmap content 
    Marshal.Copy(bitmaps[i].BackBuffer, bitmapData, offset, size); 

    offset += size; 

    bitmaps[i].Unlock(); 
} 

// Save bitmapDat to file. 

和從文件讀取類似。

UPD。添加了位圖大小的標題。沒有它們,將很難從單個字節數組中讀取單獨的位圖。