Я сделал класс (Draw.aspx), который генерирует битовый массив и возвращает его в ответ запроса:Получить изображение из ответа
Response.ContentType = "image/png";
bitmap.Save(Response.OutputStream, ImageFormat.Png);
Все работает хорошо, когда я бегу Draw.aspx в веб-браузере это показывает сгенерированное изображение, я могу сохранить его на своем жестком диске и т. д.
Теперь я хотел вызвать этот запрос с другого сайта (~/default.aspx) и оттуда сохранить это изображение на сервере (например, image.png) или использовать его на веб-сайте. Я попытался запустить этот код, но проблема в том, я получаю .html часть Draw.aspx вместо того, чтобы просто .png:
String inputImage = Server.MapPath("Draw.aspx");
String outputImage = Server.MapPath("image.png");
WebRequest webRequest = WebRequest.Create(inputImage);
WebRequest.Create(inputImage);
webRequest.Method = "GET";
webRequest.ContentType = "image/png; encoding='utf-8'";
WebResponse webResponse = webRequest.GetResponse();
StreamReader oReader = new StreamReader(webResponse.GetResponseStream(), Encoding.UTF8);
StreamWriter oWriter = new StreamWriter(outputImage);
oWriter.Write(oReader.ReadToEnd());
Что image.png файл содержит (вместо фактического изображения):
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Draw.aspx.cs" Inherits="Draw" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
</div>
</form>
</body>
</html>
Я пытался решить эту проблему в течение нескольких часов, но ничего не работает правильно, и я думаю, что, возможно, неправильно понял, как работает запрос.
Я бы очень признателен за любую помощь :)
Благодарим за отзыв. Раньше я использовал аналогичный код, но я отказался от него, потому что я хотел иметь контроль над сгенерированным изображением, и в этом примере он напрямую связан с Image (control). Что я могу сделать, если, например, я хотел показать его на сайте ** и ** сохранить его на сервере? –
обновил ответ. Чтобы показать это и сохранить, просто объедините два метода, которые я предоставил. –
Ваш ответ был действительно полезен!Я прочитаю немного больше о классах и методах, которые вы использовали, потому что, хотя они работают, у меня есть некоторые вопросы о том, как :) –