Главная
Блог разработчиков phpBB
 
+ 17 предустановленных модов
+ SEO-оптимизация форума
+ авторизация через соц. сети
+ защита от спама

Модуль для рисования растровых картинок HTML таблицами

Anna | 15.06.2014 | нет комментариев
люблю, когда все работает. Когда не работает — не люблю. Восемь лет назад я начал писать диссертацию по деформативному моделированию и единовременно искать себе такой инструмент, Дабы работал. Я каждого лишь искал что-то такое, что могло бы превращать идеи в картинки. Оказалось, это вовсе не банально.


Позже некоторых бесплодных попыток обнаружить идеал, остановиться пришлось на Python TkInter. Основное превосходство этой связки — как минимум на Windows она ставится из коробки и не своенравничает. Это значимо, когда заниматься доводится при всякой комфортной вероятности: в университете, на работе, дома, у родителей. В остальном она, безусловно, не дюже комфортная, правда в целом для того, Дабы посмотреть итог вычислительного эксперимента глазами, годится.

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

К сожалению, примитивное и рабочее решение пришло в голову теснее крепко позднее охраны. Растровая картинка — это реально матрица цветов. Матрицы в чистом Питоне — это вложенные массивы. А вот, скажем, в HTML — таблицы. Дозволено сгенерировать таблицу с ячейками размерами в один пиксель и всякой ячейке присвоить соответствующий цвет фона. Потом это все дозволено вставить в всякий HTML совместно с текстом и типичными таблицами.

Вот, собственно, готовый модуль, тот, что и делает картинки таблицами:https://github.com/akalenuk/html_bitmap Помимо конвертации массива с цветами в HTML, он еще разрешает немножко на этой таблице рисовать прямоугольники, прямые и окружности.

Безусловно, если цвет присваивать дословно всякой ячейке, таблица окажется незаслуженно левиафанской. Следственно здесь применяется несложный оптимизирующий алгорифм. Цвет присваивается не ячейкам, а прямоугольникам из объединенных ячеек. И вот так теснее получается не так нехорошо.

Скажем, картика из теста самого модуля, та что сверху статьи, занимает около 260 KB. Сжатая зипом с типичным ярусом компрессии — 19 KB.

Для сопоставления, та же картинка в несжатом BMP занимает больше 500 KB, в 256-цветном GIF — 65 KB, в PNG — те же 19 KB.

И не то что бы это серьезно кого-то тревожило в двадцать первом веке.

Да, это тупое решение с массой недостатков, но оно разрешает сконцентрироваться на изыскании, а не на установке matplotlib на всякой машине и не на конвертации, к примеру, .odt в .docx. Самое основное превосходство такого подхода — текст и картинка получается в одном таком файле, тот, что дозволено переслать кому желательно, и получатель сумеет его открыть безо любых задач несовместимости. Даже криво собранный HTML всякий теперешний браузер подхватит и как-то да выведет. Оно легко работает.

Источник: programmingmaster.ru

Оставить комментарий
Форум phpBB, русская поддержка форума phpBB
Рейтинг@Mail.ru 2008 - 2017 © BB3x.ru - русская поддержка форума phpBB