Как я могу создавать образы с помощью разметки HTML?
Мне нужно отображать отчеты и вещи в HTML с помощью объекта Microsoft HTMLDocument
.
К сожалению, вы можете присвоить HTML-разметку документа, но вы не можете дать ему изображения. Он может отображать только изображения, получаемые с URL-адреса, например:
В качестве обходного пути я решил, что смогу создать изображение с использованием разметки HTML, пиксельного пикселя.
Проделана ли какая-либо работа в этой области? Должно ли оно быть абсолютно позиционированным 1x1 цветным пролетом? Таблица 350x200, с строками и столбцами размером в один пиксель?
Ответы
Ответ 1
Можно ли использовать схему URI данных?
IE8 поддерживает это (как и большинство новых браузеров); ваши изображения будут выглядеть так:
<img src="data:image/png;base64,A0123...==">
где материал A0123...
представляет собой base64 представление файла изображения. В зависимости от языка, который вы используете, вы можете использовать Convert.ToBase64String()
, чтобы выполнить большую часть работы для вас.
Ответ 2
Самый простой способ, на мой взгляд, - использовать кодированное base64 изображение. Он достаточно эффективен и есть инструменты для автоматизации генерации: http://www.greywyvern.com/code/php/binary2base64.
Ответ 3
Люди, к большому ужасу, проделали прочную работу в этой области. Решение, с которым я ссылаюсь, использует таблицы с сжатием RLE, которые кажутся мне достаточно умными.
Ответ 4
Во-первых, предостережение: это ужасная, ужасная вещь, которую вы планируете делать.
Теперь, когда у нас это получилось, я, возможно, сделал хорошую сделку этого ужасная вещь. Я могу сказать вам, что лучше всего использовать таблицы, а не divs или охватывает. Тем не менее, это ужасно неэффективно и требует навсегда загрузки, как вы можете видеть из образцов, с которыми я связан. Просто не делай этого, кроме как извращенной шутки.
Ответ 5
Я написал класс PHP несколько лет назад, чтобы сделать это, но я бы не рекомендовал использовать это в реальном мире, так как требуется долгое время для браузера, чтобы сделать таблицу достаточно большой для изображения.
Если я не правильно понимаю ваш вопрос, почему вы не можете ссылаться на изображение, используя полный URL-адрес:
http://somewhere.com/myimage.jpg
Ответ 6
"Отчеты и вещи"... может быть немного яснее здесь...
Если то, что вы в конечном итоге хотите сделать, это отобразить отчет, который, как представляется, будет динамически генерироваться, скорее всего, вы можете автоматически генерировать образ отчета. "Экспорт в PDF", вероятно, доступен в инструменте отчета. Грубый, но более простой и эффективный, чем вы, кажется, сейчас возглавляете.
Ответ 7
В IE вы можете использовать VML, который дает базовые возможности векторного рисования, подобные SVG.
Этот парень создал javascript-библиотеку для рисования векторной графики в браузерах, используя только sivs: http://web.archive.org/web/20080112113027/www.walterzorn.com/jsgraphics/jsgraphics_e.htm (на данный момент сайт кажется пустым)
В эти дни вы также можете попробовать библиотеку, такую как Raphaël, которая использует броверный холст или поддержку VML.