0
에 저장하면 이미지를 저장할 수 있습니까? 이미지는 파일이 아닌 BitmapImage 형식으로 만 찾을 수 있습니다.WriteableBitmap 또는 BitmapImage를 C++ Windows Storage App
나는 C++에서이 방법을 알고있다. 당신이 첫번째 장소에있는 BitmapImage
을로드하는 경우 - -
private static async Task<StorageFile> SaveAsJpeg(WriteableBitmap wb)
{
byte[] pixels;
using (var stream = wb.PixelBuffer.AsStream())
{
pixels = new byte[(uint)stream.Length];
await stream.ReadAsync(pixels, 0, pixels.Length);
}
var name = String.Format("{0}_{1:yyyy-MM-dd_HH-mm-ss}.jpg", "MyApp", DateTime.Now);
var outputFile = await KnownFolders.PicturesLibrary.CreateFileAsync(name, CreationCollisionOption.ReplaceExisting);
using (var writeStream = await outputFile.OpenAsync(FileAccessMode.ReadWrite))
{
var encoder = await BitmapEncoder.CreateAsync(BitmapEncoder.JpegEncoderId, writeStream);
encoder.SetPixelData(BitmapPixelFormat.Bgra8, BitmapAlphaMode.Premultiplied,
(uint)wb.PixelWidth, (uint)wb.PixelHeight,
96, 96, pixels);
await encoder.FlushAsync();
using (var outputStream = writeStream.GetOutputStreamAt(0))
{
await outputStream.FlushAsync();
}
}
return outputFile;
가 더 문제가 무효가 될 수없는 작업이 될 필요가 없습니다 ...
그것은 정말 복잡하고 나는 소스 파일 스트림을 사용하지 못할 것을 나는 당신을 알 수 있습니다. – Stamos
음, 원본 스트림을 사용하는 것이 가장 좋은 방법입니다. 이미지를 다시 인코딩하는 것은 성능이 좋지 않습니다. 이미지가 제거되었을 수도있는 SD 카드에있는 경우 등 절대적으로 그렇게 할 수없는 경우 - 링크 된 답변에서 'WriteableBitmaps' 및 픽셀 버퍼 액세스 방법을 사용하십시오. –
임 Ibuffer 파일에 그 아이디어를 저장하는 방법을 이해하려고? – Stamos