powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Отобразить Bitmap в ASP NET MVC
23 сообщений из 23, страница 1 из 1
Отобразить Bitmap в ASP NET MVC
    #38471282
Sky Dragon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день.

Хочу отобразить на страничке картинку.
Но, картинку надо передать в Model. Она генерируется непосредственно в методе контроллера.

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
  public ActionResult Get(object data)
        {
            System.Drawing.Bitmap qr = service.Encode(data);
            FileContentResult result;
            using (var memStream = new System.IO.MemoryStream())
            {
                qr.Save(memStream, System.Drawing.Imaging.ImageFormat.Jpeg);
                result = this.File(memStream.GetBuffer(), "image/jpeg");
            }
            return View(result);
        }



Код: html
1.
<img src="@Model" alt=""/> 


таким образом не отображает

Вариант типа:
Код: html
1.
<img src="@Url.Action("GetImage")" alt=""/> 


не подходит. Потому что картинка никуда не сохраняется.

Пока что решил сохранять картинку в сессии:
Код: c#
1.
Session.Add("image",result);



и собственно по методу
Код: html
1.
<img src="@Url.Action("GetImage")" alt=""/> 


Код: c#
1.
2.
3.
4.
5.
 public ActionResult GetImage()
        {
            return Session["image"] as FileContentResult;

        }


Но не знаю на сколько это хорошо...
Какие есть еще варианты?
...
Рейтинг: 0 / 0
Отобразить Bitmap в ASP NET MVC
    #38471291
Фотография Паганель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sky DragonКакие есть еще варианты?передавать в модель не саму картинку, а URL на нее
...
Рейтинг: 0 / 0
Отобразить Bitmap в ASP NET MVC
    #38471301
Sky Dragon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Паганель,

Не совсем понял.

У нее нет Url. Она просто сгенерена на сервере. И никуда не сохраняется.
...
Рейтинг: 0 / 0
Отобразить Bitmap в ASP NET MVC
    #38471310
Фотография Паганель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
не генерите ее в методе Get, генерите в методе GetImage
...
Рейтинг: 0 / 0
Отобразить Bitmap в ASP NET MVC
    #38471318
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sky Dragon...У нее нет Url. Она просто сгенерена на сервере. И никуда не сохраняется.
А её и не надо сохранять передавайте УРЛ, как выше было рекомендовано.
...
Рейтинг: 0 / 0
Отобразить Bitmap в ASP NET MVC
    #38471320
Sky Dragon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Паганель,

Данные(с формы) передаются в метод Get. Потому там и генерится
...
Рейтинг: 0 / 0
Отобразить Bitmap в ASP NET MVC
    #38471337
Фотография Паганель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
создайте URL, обращающийся к GetImage и содержащий те же данные в качестве переметров
...
Рейтинг: 0 / 0
Отобразить Bitmap в ASP NET MVC
    #38471351
Sky Dragon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Паганель,

да как-то отправлять данные в виде параметров запроса не хочется)) и там их 2 кб
...
Рейтинг: 0 / 0
Отобразить Bitmap в ASP NET MVC
    #38471360
Фотография Паганель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
хм, обычно данные формы это то что юзер ввел...
но если тут еще и файл аплоадится то я не знаю что делать, наверное сохранять на диске все-таки
...
Рейтинг: 0 / 0
Отобразить Bitmap в ASP NET MVC
    #38471379
Sky Dragon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Паганель,

по данным юзера как раз и генерится изображение. Штрих код. :)
Который и надо потом вернуть юзеру сие изображение.
...
Рейтинг: 0 / 0
Отобразить Bitmap в ASP NET MVC
    #38471463
KVVK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Sky Dragon,

Я все делаю почти как и Вы, с небольшим отличием, может натолкнет на мысль

<img src="/Home/MyChart/@Model" alt=""/>

public ActionResult MyChart(string id)
{
System.Drawing.Bitmap qr = service.Encode(id);
FileContentResult result;
using (var memStream = new System.IO.MemoryStream())
{
qr.Save(memStream, System.Drawing.Imaging.ImageFormat.Jpeg);

Response.ContentType = "image/png";
memStream.WriteTo(Response.OutputStream);
}
return null;
}
...
Рейтинг: 0 / 0
Отобразить Bitmap в ASP NET MVC
    #38471474
KVVK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Sky Dragon,

Пардон, в этом случае
Response.ContentType = "image/jpeg";
...
Рейтинг: 0 / 0
Отобразить Bitmap в ASP NET MVC
    #38471551
Фотография Паганель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sky Dragonпо данным юзера как раз и генерится изображение. Штрих код. :)так я ж не спорю, мне непонятно почему юзер должен ввести в форму целых 2кб
хотя... может просто я не решал такого класса задачи вот и не понимаю :)
...
Рейтинг: 0 / 0
Отобразить Bitmap в ASP NET MVC
    #38471800
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sky DragonКакие есть еще варианты?

варианта 2:

1. генерить картинку по дополнительному запросу с клиента (понятное дело, во вью вы должны сгенерировать URL).

2. если уж так важно отдать картинку во вью (без дополнительного запроса), то можете использовать нотацию data:URL . пример как это сделать на MVC вот здесь .
...
Рейтинг: 0 / 0
Отобразить Bitmap в ASP NET MVC
    #38472290
Sky Dragon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
KVVK,
Попробовал Ваш вариант.
Но отобразилась только картинка. Вся остальная разметка исчезла. Видимо дело в Response.ContentType = "image/png";

Паганель,
2кб - многабукофъ )
Я тоже не решал такие задачи :) поэтому и решил проконсультироваться на форуме

hVostt,
1. Ну доп запрос, как я говорил, должен тогда еще и параметров на 2 кб передать. Я на этот счет сомневаюсь...
2. Пробовал такой вариант. Страница просто повисала. Мб просто где-то ошибся... Сейчас еще раз попробую.
...
Рейтинг: 0 / 0
Отобразить Bitmap в ASP NET MVC
    #38472294
Sky Dragon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
hVostt,

А подвисал он похоже из-за размера. В статейке говорится, что не больше 32кб. А получалось больше. Уменьшил размер картинки, теперь все норм.

Спасибо. Наверно пока этот вариант оставлю.
...
Рейтинг: 0 / 0
Отобразить Bitmap в ASP NET MVC
    #38472556
Sky Dragon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Хм... теперь другая задачка вытекла.
Хочу сохранить это изображение. Так как оно уже на клиенте есть, то обращаться к серверу(там и нет картинки), чтобы ее сохранить смысла нет.

нашел вариант:

Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
 <script type="text/javascript">
      window.onload = function () {
          var img = document.getElementById('image');
          var button = document.getElementById('save_btn');
          button.onclick = function () {
              window.location.href = img.src.replace('image/jpeg', 'image/octet-stream');
          };
      };
        </script>



Но он сохраняет файл без расширения и имени

еще увидел в теге a download но он не везде поддерживается(только HTML 5).
...
Рейтинг: 0 / 0
Отобразить Bitmap в ASP NET MVC
    #38472564
Фотография Паганель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sky DragonХочу сохранить это изображениена чьем диске, на серверном или на клиентском?
...
Рейтинг: 0 / 0
Отобразить Bitmap в ASP NET MVC
    #38472569
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Паганельна чьем диске, на серверном или на клиентском?

на клиентском же я уже даже и не знаю, что автору посоветовать.
...
Рейтинг: 0 / 0
Отобразить Bitmap в ASP NET MVC
    #38472585
Sky Dragon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
hVostt, Паганель

Да, на клиентском )

Ну просто я принципиально не хочу сохранять их(даже временно) на севере. Это ж потом еще надо делать дополнительно удаление этих файлов :)

А что плохого может случиться, если изображение сохраняется в сессии?

П.с. Можете посоветовать на обед сходить :)
...
Рейтинг: 0 / 0
Отобразить Bitmap в ASP NET MVC
    #38472597
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sky Dragon,

если файлы маленькие храните в сессии. но учтите. придёт кое-кто, и будет ругать за такое решение :)
...
Рейтинг: 0 / 0
Отобразить Bitmap в ASP NET MVC
    #38472598
Фотография Паганель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а если юзер нажмет на картинке правую кнопку мыши, он сможе ее сохранить?
...
Рейтинг: 0 / 0
Отобразить Bitmap в ASP NET MVC
    #38472624
Sky Dragon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
hVostt,

кто?) МСУ?)
файлы до пары сотен кб. И ведь они не накапливаются. Новый записывается поверх старых

Паганель,
Конечно может. Но не каждый юзер же такое захочет делать.
А кнопка с большими буквами "СКАЧАТЬ" сразу скажет ему, как ее сохранить :)
...
Рейтинг: 0 / 0
23 сообщений из 23, страница 1 из 1
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Отобразить Bitmap в ASP NET MVC
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]