Отображение изображения в элементе управления WebBrowser без доступа к внешним файлам - PullRequest
1 голос
/ 03 августа 2009

Я использую элемент управления WebBrowser в C # в приложении для отображения HTML. Все данные поступают из базы данных, поэтому я создаю полную страницу с Inline-CSS в памяти и отправляю ее в браузер.

Но теперь я хочу поддерживать изображения, что кажется проблемой, потому что я не хочу хранить изображения на жестком диске, даже в каталоге Temp. Мне известны данные : Схема URI , но, похоже, они слишком ограничены.

Мне интересно: могу ли я каким-то образом использовать JavaScript для динамического генерирования изображения, учитывая поток байтов, по существу, зеркальное отображение данных: Схема с использованием JavaScript? Или есть какой-то другой способ отображения изображений, например, с помощью GDI +?

Я могу сделать некоторые предположения об изображениях, если это необходимо, то есть я могу заставить пользователя указать ширину и высоту, если требуется, но я не могу на самом деле обеспечить положение, это ведь HTML. Я также могу заставить все изображения быть в определенном формате, в основном все, что может помочь в решении этой проблемы.

Редактировать: Могу ли я использовать что-то вроде VML для отображения растровых данных? Я не могу использовать Canvas или SVG, как кажется (оба не поддерживаются в IE и, следовательно, в MSHTML?)

Редактировать 2: VML будет работать, но загрузка процессора безумная. Поэтому я либо реализую веб-сервер для обслуживания файлов (например, cassini), либо попробую подход Silverlight в моем другом вопросе.

Ответы [ 2 ]

2 голосов
/ 03 августа 2009

Если вы хотите добавить дополнительный уровень сложности вашему приложению, вы можете встроить простой веб-сервер, который можно использовать для обслуживания изображений. Используя System.Net.HttpListener , вы можете настроить свое приложение на обслуживание изображений по запросу. Это должно работать, но кажется ужасно хакерским ...

2 голосов
/ 03 августа 2009

img-тег поддерживает встроенные данные в своем атрибуте источника. Таким образом, вы можете взять данные изображения, закодировать их в base64 и сохранить в атрибуте src.

Посмотрите здесь пример. og, вы можете поискать в Google html embed image , чтобы получить больше примеров.

...