에 저장 디스크 전체에 WriteableBitmap
의 배열을 저장할 수 있습니까? 전체적으로 검색 할 수 있습니까?WriteableBitmap의 배열을 파일
0
A
답변
2
저장하기 전에 WriteableBitmap의 출력을 PNG 또는 JPG와 같은 인식 된 이미지 형식으로 인코딩해야합니다. 그렇지 않으면 파일의 바이트 일뿐입니다. PNG, JPG, BMP 및 GIF 형식을 지원하는 ImageTools (http://imagetools.codeplex.com/)를 살펴보십시오. http://imagetools.codeplex.com/wikipage?title=Write%20the%20content%20of%20a%20canvas%20to%20a%20file&referringTitle=Home에 이미지를 파일로 저장하는 예가 있습니다.
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. 비트 맵 크기의 헤더를 추가했습니다. 그것들이 없으면 1 바이트 배열에서 별도의 비트 맵을 읽는 것이 어려울 것입니다.
WinRT, WPF, Silverlight? – Denis
@Denis 알고 계시다면 WinRT뿐 아니라 WPF에도 관심이 있습니다. – P5music