Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > .NET для новичков > c# soap web srvice. как отправить картинку


Автор: pavelgu 20.3.2014, 23:14
Доброе время суток.
Передо мной стоит реализовать веб сервис (c# soap) который должен отправлять картинки в формате png . В последствии картинку должно принять android приложение .
Буду рад вашей помощи .

Автор: jonie 22.3.2014, 21:16
как массив byte[] отправляйте.

но вообще soap плохо работает с бинарными данными.

Автор: Miller_time 20.5.2014, 14:39
Конвертните картинку в base 64
Код

private string CreateBase64Image(byte[] fileBytes)
    {
        Image streamImage;
        /* Ensure we've streamed the document out correctly before we commit to the conversion */
        using (MemoryStream ms = new MemoryStream(fileBytes))
        {
            /* Create a new image, saved as a scaled version of the original */
            streamImage = ScaleImage(Image.FromStream(ms));
        }
        using (MemoryStream ms = new MemoryStream())
        {
            /* Convert this image back to a base64 string */
            streamImage.Save(ms, System.Drawing.Imaging.ImageFormat.Png);
            return Convert.ToBase64String(ms.ToArray());
        }
    }


Так же ее потом можно востановить в любом приложение:
Код

public static BitmapImage base64image(string base64string)
{
    byte[] fileBytes = Convert.FromBase64String(base64string);

    using (MemoryStream ms = new MemoryStream(fileBytes))
    {
        Image streamImage = Image.FromStream(ms);
        context.Response.ContentType = "image/jpeg";
        streamImage.Save(context.Response.OutputStream, ImageFormat.Jpeg);
        return streamImage;
    }
}



Погуглите есть примеры получения изображения из base64 для andoid и iOS

Добавлено через 24 секунды
Конвертните картинку в base 64
Код

private string CreateBase64Image(byte[] fileBytes)
    {
        Image streamImage;
        /* Ensure we've streamed the document out correctly before we commit to the conversion */
        using (MemoryStream ms = new MemoryStream(fileBytes))
        {
            /* Create a new image, saved as a scaled version of the original */
            streamImage = ScaleImage(Image.FromStream(ms));
        }
        using (MemoryStream ms = new MemoryStream())
        {
            /* Convert this image back to a base64 string */
            streamImage.Save(ms, System.Drawing.Imaging.ImageFormat.Png);
            return Convert.ToBase64String(ms.ToArray());
        }
    }


Так же ее потом можно востановить в любом приложение:
Код

public static BitmapImage base64image(string base64string)
{
    byte[] fileBytes = Convert.FromBase64String(base64string);

    using (MemoryStream ms = new MemoryStream(fileBytes))
    {
        Image streamImage = Image.FromStream(ms);
        context.Response.ContentType = "image/jpeg";
        streamImage.Save(context.Response.OutputStream, ImageFormat.Jpeg);
        return streamImage;
    }
}



Погуглите есть примеры получения изображения из base64 для andoid и iOS

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)