Сохранить изображение веб-камеры Silverlight (ImageSource) на сервере - PullRequest
1 голос
/ 28 марта 2012

Это насколько я получил. Какой код я бы написал, чтобы сохранить захваченное изображение на сервер? Без какого-либо диалогового окна с предложением сохранить местоположение. Подобно тому, как это делает Facebook. (Я не смог найти примеры в сети)

void CaptureSource_CaptureImageCompleted(object sender, CaptureImageCompletedEventArgs e)
{
    capturedImage.ImageSource = e.Result;
    stopCapture(); // turns off webcam
}

Ответы [ 2 ]

2 голосов
/ 28 марта 2012

Это не так просто.

  1. Создание службы WCF на сервере.
  2. Используйте его на клиенте Silverlight.
  3. Вызовите метод обслуживания для отправки изображения на сервер.
  4. Сохраните его на сервере с пользовательской логикой.

Или, если это слишком сложно - следуйте этому уроку .Это довольно компактный RESTful подход демо.

1 голос
/ 28 марта 2012

Я сделал это раньше, во-первых ImageTools - хорошая библиотека, но не хорошая, вы можете ее использовать. Кроме того, вы должны проверить разрешение на доступ к камере. Тогда вот код, Надежда помогает,

/ Захват части изображения /

     _captureSource.CaptureImageCompleted += ((s, args) =>
        {
            //some other stuffs
            domainServiceObject.PR_PATIENTPHOTOs.Clear();

            photo = new PR_PATIENTPHOTO();              
            ImageTools.ExtendedImage eimg=args.Result.ToImage();
            var encoder=new ImageTools.IO.Png.PngEncoder();                                 

            Stream stream= eimg.ToStreamByExtension("png");
            if (stream.Length > 512000)
            {                    
                eimg= ExtendedImage.Resize(eimg, 240, new NearestNeighborResizer());                    
                stream = eimg.ToStreamByExtension("png");
            }

/ Перезагрузить изображение Part /

// примечание photo.photo является байтом []

        photo = domainServerObject.PR_PATIENTPHOTOs.FirstOrDefault();

        if (photo != null)
        {
            using (MemoryStream ms = new MemoryStream(photo.PHOTO, 0, photo.PHOTO.Length))
            {
                ms.Write(photo.PHOTO, 0, photo.PHOTO.Length);
                BitmapImage img = new BitmapImage();
                img.SetSource(ms);
                imagePatientPhoto.Source = img;
            }
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...