Envoi de la mémoire de mémoire contenant une image de capture à Pays.com sur le bouton Cliquez sur le bouton

StackOverflow https://stackoverflow.com//questions/25008234

Question

J'essaie de capturer une image puis de l'envoyer sur l'image à Pays.com, y compris d'autres valeurs d'objet. Pour ce faire court, j'envoie l'image à Parse.com dès que je capture l'image sans même Button_Click.ça marche mais pas ce que je veux.Je souhaite enregistrer le flux de mémoire, puis utiliser le flux enregistré pour envoyer sur le bouton parse.com sur le bouton Cliquez avec les autres variables d'objet.

Ceci est le code où je capture de l'image et je l'envoie à pars.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();
            }
        }
    }

Ceci est mon bouton Cliquez sur le code où je veux envoyer cette image en cliquant au lieu de l'envoyer directement après la capture.Je souhaite enregistrer le flux d'images si possible, puis l'envoyer à Pays.com sur le bouton Cliquez sur.

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();
    }

Était-ce utile?

La solution

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
            }
        }
    }

sur le bouton Cliquez sur

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();

    }

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top