Отправка потока памяти, который содержит изображение захвата на Parse.com, на кнопку щелкните
-
20-12-2019 - |
Вопрос
Я пытаюсь захватить изображение, а затем отправить это на изображение на Parse.com, включая другие значения объекта. Чтобы сделать это коротким, я отправлял изображение на Parse.com, как только я захвачу за изображением без четных кнопок_писки события.Это работает, но не то, что я хочу.Я хочу сохранить поток памяти, а затем использовать сохраненный поток для отправки на кнопку Parse.com, нажав с другими переменными объектами.
Это код, в котором я захват изображение и отправляю его на Parse.com
private async void cameraCapture_Completed(object sender, PhotoResult e)
{
if (e.TaskResult != TaskResult.OK) return;
var capturedPhoto = new BitmapImage();
capturedPhoto.SetSource(e.ChosenPhoto);
ImgView.Source = capturedPhoto;
PictureFileName = today.ToString();
{
using (var memoryStream = new MemoryStream())
{
// Get a stream of the captured photo
var writableBitmap = new WriteableBitmap(capturedPhoto);
writableBitmap.SaveJpeg(memoryStream, capturedPhoto.PixelWidth, capturedPhoto.PixelHeight, 0, 100);
PhotoResult photoResult = e as PhotoResult;
photoResult.ChosenPhoto.CopyTo(memoryStream);
memoryStream.Position = 0; // Rewind the stream
byte[] myPicArray = memoryStream.ToArray();
ParseFile ImageFile = new ParseFile(PictureFileName, myPicArray);
await ImageFile.SaveAsync();
var image = new ParseObject("ImageUpload");
image["photo"] = ImageFile;
image["description"] = TextBox.Text;
await image.SaveAsync();
}
}
}
.
Это моя кнопка Нажмите код, где я хочу отправить это изображение на щелчок вместо того, чтобы отправить его непосредственно после захвата.Я хочу сохранить поток изображения, если это возможно, а затем отправьте его на кнопку Parse.com, нажав кнопку.
private async void Btn_Click(object sender, RoutedEventArgs e)
{
var image = new ParseObject("ImageUpload");
image["photo"] = imageFile; //how to bring that memory stream here ???
image["description"] = TxtBox.Text;
await image.SaveAsync();
}
. Решение
private void cameraCapture_Completed(object sender, PhotoResult e)
{
if (e.TaskResult != TaskResult.OK) return;
var capturedPhoto = new BitmapImage();
capturedPhoto.SetSource(e.ChosenPhoto);
ImgView.Source = capturedPhoto;
FileName = today.ToString();
{
using (var memoryStream = new MemoryStream())
{
// Get a stream of the captured photo
var writableBitmap = new WriteableBitmap(capturedPhoto);
writableBitmap.SaveJpeg(memoryStream, capturedPhoto.PixelWidth, capturedPhoto.PixelHeight, 0, 50);
PhotoResult photoResult = e as PhotoResult;
photoResult.ChosenPhoto.CopyTo(memoryStream);
memoryStream.Position = 0; // Rewind the stream
myPic = memoryStream.ToArray(); // byte[] myPic; has been decleared in inital
}
}
}
.
на кнопке нажмите
private async void BtnPost_Click(object sender, RoutedEventArgs e)
{
ParseFile ImageFile = new ParseFile(FileName, myPic);
await ImageFile.SaveAsync();
var imageUpload = new ParseObject("ImageUpload ");
imageUpload["photo"] = ImageFile;
await imageUpload.SaveAsync();
}
.