Модераторы: gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Динамические изображения в Web Control 
:(
    Опции темы
VeryWell
Дата 30.7.2009, 14:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 22
Регистрация: 15.3.2009

Репутация: нет
Всего: нет



Приветствую всех!
Задача:
Необходимо создать контрол, который будет программно генерировать картинку содержащую какой-то текст и выводить её на страницу в виде контрола, т.е. добавлять картинку к имеещимуся контенту на странице.

Сложности:
Использование инструментов GDI предусматривает создание Bitmap или Image, которые не усваиваются контролом Image. Вообще контрол предусматривает получение картинки по Url. Возможно необходимо как-то использовать (HTML)Placeholder как контейнер для изображения, но информации о чем-либо подобном в сети я не нашел. С другой стороны, возможно необходимо перехватывать одно из событий жизненного цикла ASP страницы и как-то правильно обрабатывать в ручную, но и по этому вопросу кроме общей теории на msdn ничего не нашел.
Варианты с сохранением картинки где-либо, а потом использование ссылке на неё не подходят. Испозльзование страниц обработчиков ashx тоже не подходят.

Вопрос традиционный:
Как?  smile
PM MAIL   Вверх
Bestoloch
  Дата 31.7.2009, 14:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 84
Регистрация: 29.6.2009

Репутация: нет
Всего: нет



PM MAIL   Вверх
VeryWell
Дата 31.7.2009, 15:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 22
Регистрация: 15.3.2009

Репутация: нет
Всего: нет



To Bestoloch. Спасибо что не отослали на Википедию =)

Решение проблемы найдено. поже отпишусь подробнее. Всем пасибо за просмотры  smile 
PM MAIL   Вверх
VeryWell
Дата 31.7.2009, 15:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 22
Регистрация: 15.3.2009

Репутация: нет
Всего: нет



To Bestoloch. Спасибо что не отослали на Википедию =)

Решение проблемы найдено. поже отпишусь подробнее. Всем пасибо за просмотры  smile

Добавлено через 11 минут и 5 секунд
To Bestoloch. Спасибо что не отослали на Википедию =)

Решение проблемы найдено. поже отпишусь подробнее. Всем пасибо за просмотры  smile 
PM MAIL   Вверх
VeryWell
Дата 7.8.2009, 18:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 22
Регистрация: 15.3.2009

Репутация: нет
Всего: нет



Итак отвечаю...
Рабочая идея заключается в следующем: 
В контроле описываются методы, с помощью которого рисуется картинка и выводится в поток. Подсмотреть пример отрисовки картинки. Затем в контроле при выводе картинки ссылаетесь на этот же контрол:
Код

string url=Page.Request.Path;

Осталось только помочь контролу определить, когда браузер генерирует HTML-код для отображения страницы и когда генерируется код для прорисовки вашего изображения в контроле. Для этого необходимо сопроводить запрос на загрузку картинки соответствующим контентом:
Код

writer.Write(@"<img src=""" + url + @"?image=ourImageID"">");

,где ourImageID - индефикатор по которому будет отлавливаться среди всех запросов именно запрос на отрисову картинки.
И последнее необходимо переопределить метод RenderControl и OnInit:
Код

bool IsImage = false;

protected override void OnInit(EventArgs e)
{
    string ImageID = Request.QueryString["image"];
    if ((!String.IsNullOrEmpty(ImageID)) && (0 == ImageID.CompareTo("ourImageID")))
    {
        IsImage = true;
    }

    base.OnInit(e);
}

public override void RenderControl(HtmlTextWriter writer)
{
    if (IsImage)
    {
        //Это функция из примера по ссылке:
        //http://archive.devnewz.com/devnewz-3-20040126DevelopingaHitCounterinASPNET.html
        DrawCounterValue();
    }
    else
    {
        string url = Page.Request.Path;
        writer.Write(@"<img src=""" + url + @"?image=ourImageID"">");
    }
}


Всем удачного кодинга.
Если сообщение кажется полезным - отблагодарите тыканием в известные места =)
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
Любитель
Mymik
mr.DUDA

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Любитель, Mymik, mr.DUDA.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Разработка под ASP.NET | Следующая тема »


 




[ Время генерации скрипта: 0.0891 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.