0
현재 편집 된 이미지에 공유 매력을 활용하고 싶은 Windows Store 용 작은 이미지 편집 응용 프로그램을 작성 중입니다. 일부 응용 프로그램은 StorageFiles 만 허용하고 비트 맵은 허용하지 않으므로 (기본 메일 응용 프로그램과 동일) 여기에 설명 된대로 두 가지 방법으로 이미지를 제공하고 싶습니다. http://www.jeffblankenburg.com/2012/11/07/31-days-of-windows-8-day-7-share-contract 그러나 WrieableBitmap에서 StorageFile을 만드는 방법을 모르겠습니다. .WriteableBitmap with File
아마도 아래 코드를 완료하는 데 도움이 될 것입니다.
// Share Image
async void dtm_DataRequested(DataTransferManager sender, DataRequestedEventArgs e)
{
DataRequestDeferral deferral = e.Request.GetDeferral();
DataPackage requestData = e.Request.Data;
requestData.Properties.Title = "My Image";
requestData.Properties.Description = "Created using a Windows Store App.";
// This stream is to create a bitmap image later
IRandomAccessStream stream = new InMemoryRandomAccessStream();
// Determin which type of BitmapEncoder we should create
Guid encoderId = BitmapEncoder.JpegEncoderId;
BitmapEncoder encoder = await BitmapEncoder.CreateAsync(encoderId, stream);
Stream pixelStream = theImage.PixelBuffer.AsStream();
byte[] pixels = new byte[pixelStream.Length];
await pixelStream.ReadAsync(pixels, 0, pixels.Length);
encoder.SetPixelData(BitmapPixelFormat.Bgra8, BitmapAlphaMode.Ignore, (uint)theImage.PixelWidth, (uint)theImage.PixelHeight, 96.0, 96.0, pixels);
requestData.SetBitmap(RandomAccessStreamReference.CreateFromStream(stream));
// What goes here?
StorageFile storageFileImage =
List<IStorageItem> files = new List<IStorageItem>();
files.Add(storageFileImage);
requestData.SetStorageItems(files);
requestData.Properties.Thumbnail = RandomAccessStreamReference.CreateFromStream(stream);
await encoder.FlushAsync();
deferral.Complete();
}
그래, 그게 내가 이미 가진거야, 안 그래? 해당 스트림에서 공유 할 수있는 StorageFile을 얻으려면 어떻게해야합니까? – Thomas
코드를 편집하여 StorageFile에 씁니다. –
완벽, thx. 이제까지 스트림이 어떻게 작동하는지 결코 이해하지 못했을 것 같네요 .-) – Thomas