Можно ли преобразовать элемент управления ASP.NET в изображение на лету? - PullRequest
2 голосов
/ 05 марта 2009

В ASP.NET, если у меня есть многострочное текстовое поле (или даже стороннее форматированное текстовое поле), могу ли я преобразовать его содержимое в изображение во время обратной передачи? Под конвертированием я подразумеваю сохранить формат и контент на картинке.

Например, у меня есть поле для расширенного редактирования, конечный пользователь может добавить на него причудливый текстовый шрифт и символы, как только они нажмут «отправить», есть ли способ сохранить это содержимое в виде растрового изображения? или есть такая сторонняя расширенная коробка редактирования, имеющая эту встроенную функцию?

Полагаю, может понадобиться GDI + или WPF, но просто не знаю с чего начать.

Ответы [ 2 ]

1 голос
/ 06 марта 2009

Я не уверен, что предыдущий ответ разрешил вам проблему. Вы хотите захватить то, что отображается в окне конечных пользователей (то есть браузеров), верно? А затем вы хотите отправить BMP обратно на ваш сервер. Предположительно, вы хотите сделать это, потому что конечный пользователь может иметь поддержку шрифтов и т. Д., Которой у вас нет, или вы хотите, чтобы они показывали это изображение другим пользователям, у которых их нет.

Я почти уверен, что это невозможно в браузере. Звучит так, что это тоже должно быть сложно (я бы не хотел видеть сайты, которые могли бы легко захватывать области моего рабочего стола и публиковать их обратно). Я подозреваю, что вы находитесь в области написания своего собственного элемента управления ActiveX / Silverlight / Flash, но вы должны подумать, разумно ли это делать - есть ли у вас контроль над браузерами (другими словами, можете ли вы гарантировать версию браузера? а ОС что у ваших пользователей)? Если нет, то вы можете обнаружить, что заставить работать элемент управления захвата экрана во всех частях матрицы ОС / браузера - это больше работы, чем оно того стоит.

Возможно, если вы расширите свою проблему, можно найти лучшее решение или, скорее, совершенно другой подход.

0 голосов
/ 05 марта 2009

Это действительно неприятный, уродливый пример кода, но он охватывает все концепции за один раз: Как создать (а) текстовое изображение на лету с ASP.NET .

По сути, это делается путем создания нового System.Drawing.Bitmap и использования System.Drawing.Graphics.DrawString (text) . Требуется оценить, насколько большой будет нарисованная строка, и убедиться, что ваш холст достаточно большой; настраивать шрифты и тому подобное, но в целом это довольно просто, если вы сделаете это несколько раз.

...