Как я могу создавать изображения с использованием разметки HTML?

Мне нужно отображать отчеты и вещи в HTML, используя Microsoft HTMLDocument объект.

К сожалению, вы можете присвоить документу разметку HTML, но вы не можете дать ему изображения. Он может отображать только изображения, полученные с URL-адреса, например:

  • Http://
  • файл://
  • разрешение: //

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

Была ли работа в этой области? Должен ли он быть абсолютно позиционирован 1x1 цветными пролетами? Таблица 350x200 со строками и столбцами размером в один пиксель?

7 ответов

Решение

Вы можете просто использовать схему Data URI?

IE8 поддерживает это (как и большинство новых браузеров); ваши изображения будут выглядеть так:

<img src="data:image/png;base64,A0123...==">

где A0123... вещи - это base64 представление файла изображения. В зависимости от языка, который вы используете, вы можете воспользоваться Convert.ToBase64String() сделать большую часть работы для вас.

На мой взгляд, самый простой способ - использовать закодированное в base64 изображение. Это достаточно эффективно, и есть инструменты для автоматизации генерации: http://www.greywyvern.com/code/php/binary2base64.

Во-первых, предостережение: это ужасная, ужасная вещь, которую вы планируете сделать.

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

Люди, к ужасу всего, проделали солидную работу в этой области. Решение, на которое я ссылаюсь, использует таблицы со сжатием RLE, что мне кажется достаточно умным.

"отчеты и вещи"... может быть немного яснее здесь...

Если в конечном итоге вы хотите отобразить отчет, который создается динамически, скорее всего, вы можете автоматически создать изображение отчета. "Экспорт в PDF", вероятно, доступен в инструменте отчетов. Грубо, но проще и эффективнее, чем кажется, куда ты направляешься.

Только в IE вы можете использовать VML, который дает базовые SVG-подобные возможности векторного рисования.

Этот парень создал библиотеку javascript для рисования векторной графики в браузерах, используя только sivs: http://web.archive.org/web/20080112113027/www.walterzorn.com/jsgraphics/jsgraphics_e.htm (в данный момент сайт не работает)

В наши дни вы также можете попробовать библиотеку, такую ​​как Raphaël, которая использует холст браузера или поддержку VML.

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

Если я не правильно понимаю ваш вопрос, почему вы не можете обратиться к изображению, используя полный URL:

http://somewhere.com/myimage.jpg

Другие вопросы по тегам