rocker_003 Ответов: 2

Как преобразовать Веб-Поток, получаемый из httpwebresponse, в растровое изображение и как показать преобразованное изображение в качестве ответа


я получаю поток от httpwebresponse, который отправляется другим веб-сервером, здесь я хочу преобразовать этот Веб-Поток в растровое изображение, а затем это преобразованное изображение используется для отображения в качестве ответа в c#.

Что я уже пробовал:

HttpWebRequest myWebRequest = (HttpWebRequest)WebRequest.Create(url);
using (HttpWebResponse myResp = (HttpWebResponse)myWebRequest.GetResponse())
                    { 
                        if (myResp.ContentType.Contains("image/jpeg"))
                        {
                            Stream myStream = myResp.GetResponseStream();

2 Ответов

Рейтинг:
1

debasish mishra

HttpWebRequest myWebRequest = (HttpWebRequest)WebRequest.Create(url);request.Method = "POST";
myWebRequest .ContentType = "application/x-www-form-urlencoded";
myWebRequest .ContentLength = post_buffer.Length;
Stream request_stream = myWebRequest.GetRequestStream();
request_stream.Write(postBuffer, 0, postBuffer.Length);
request_stream.Close();
postBuffer = null;

//send the request, read the response
HttpWebResponse response = (HttpWebResponse)myWebRequest.GetResponse();
Stream response_stream = response.GetResponseStream();
Bitmap bitmap = new Bitmap(response_stream);
if(bitmap!=null)
{
Encoding encode = System.Text.Encoding.GetEncoding("utf-8");
StreamReader read_stream = new StreamReader(response_stream, encode);
}


Я не компилировал это решение.Пожалуйста, не копируйте вставку напрямую, и вы должны получить поток ответов, а затем можете узнать, получаете ли вы изображение в качестве ответа или что-то еще.


rocker_003

это ответ.Писать(растровое изображение); используется для отображения растрового изображения в качестве ответа?

[no name]

System.IO.MemoryStream stream = Новый Поток System.IO.MemoryStream();
растрового изображения.Сохранить(система Поток,.Рисование.Изображений.ImageFormat.растровое изображение);
течение.Позиция = 0;
byte[] data = новый байт[поток.Длина];
stream.Read(data, 0, stream.Длина);
А затем используйте ответ.BinaryWrite метод для записи его в двоичном виде
Ответ.BinaryWrite(данные);

rocker_003

ответьте мне на вышеприведенный комментарий...

rocker_003

братан ... как конвертировать растровое изображение в поток...?

[no name]

Пожалуйста, проверьте нижеприведенную строку в приведенном выше комментарии.
растрового изображения.Сохранить(система Поток,.Рисование.Изображений.ImageFormat.растровое изображение);

[no name]

Данное решение находится в VB.Пожалуйста, используйте эквивалент C#.

Растровое изображение в поток памяти и наоборот[^]

Рейтинг:
0

Kornfeld Eliyahu Peter

Я вижу два варианта...

1. Прочитать все байты из потока в массив, чем сохранить его с помощью BinaryWriter
2. Используйте Изображение.FromStream создает изображение в памяти, а не сохраняет его с помощью Image.Сохранить