Комментарии 13
D очень классный, только его создатели гораздо больше сконцентрированы на языке, чем на маркетинге.
Мелькали заявления, что маркетингом должно заниматься сообщество. Но оно все же еще очень маленькое, и пока в игру не вступили крупные компании, D будет сидеть в своей темной нише.
Этот язык с самого начала развивался стихийно, только силами небольшой кучки специалистов. Меня поражает проделанная на сей момент работа и предстоящие проблемы (например, дальнейшая разработка и адаптация инструментов).
Этот язык с самого начала развивался стихийно, только силами небольшой кучки специалистов. Меня поражает проделанная на сей момент работа и предстоящие проблемы (например, дальнейшая разработка и адаптация инструментов).
Предполагается, что это будет просто синтаксис для static struct (т.е. closed scope) или открытые namespace? В последнем случае это облегчит написание bindings к C++ либам.
Пока не решили еще. На самом деле, мне не очень понятно, какая разница, с закрытыми нэймспейсами писать биндинги точно так же, как с открытыми, только файловая структура не сохранится.
Его создатели занимаются тем, что умеют делать хорошо. Отсутствие маркетинга лучше, чем откровенно плохой.
Инвертирование изображения дважды не порождает операцию, и, в самом деле, i[5, 5] и i.hflip().hflip()[5, 5] генерируют одинаковый машинный код. Компиляторы D с более совершенным бекэндом могут проводоить еще более агрессивные оптимизации: например, если определили функцию flipXY, которая инвертирует оси X и Y, и rotateCW (для поворота изображения на 90° против часовой стрелки) как src.flipXY().hflip(), тогда четыре удачных вызова rotateCW вырезаются при оптимизации.Впечатляет.
Спасибо за перевод! :)
Как я понимаю пока только есть поддержка чтения/записи BMP и записи PNG?
Я только недавно стал интересоваться шаблонами. И сейчас волнует такой вопрос:
Допустим, код поддерживает чтение PNG. И если
Я только недавно стал интересоваться шаблонами. И сейчас волнует такой вопрос:
Допустим, код поддерживает чтение PNG. И если
main
принимает в качестве аргумента имя файла, который является либо BMP, либо PNG — как реализовать чтение такого файла и его последующую обработку?Как я понимаю пока только есть поддержка чтения/записи BMP и записи PNG?
При загрузке через SDL_image (модуль ae.utils.graphics.sdlimage) поддерживаются след. форматы (из доков sdl_image):
ICO(Icon)/CUR(Cursor)/BMP, PNM (PPM/PGM/PBM), XPM,
LBM(IFF ILBM), PCX, GIF, JPEG, PNG, TGA, TIFF, and XV thumbnail formats.
Этот модуль я не тестировал, лучше спросить у автора.
А сохранение идет в BMP и PNG
Допустим, код поддерживает чтение PNG. И если main принимает в качестве аргумента имя файла, который является либо BMP, либо PNG — как реализовать чтение такого файла и его последующую обработку?
Скорей всего, я вопрос понял неправильно. Если использовать sdlimage, то часть определения формата дается на откуп либе, которая уже по расширению выбирает нужный декодер.
Если реализовывать самому, то полностью compile-time'a тут достичь нельзя. Итого все равно будет явный-неявный switch с вызовом нужного декодера. Но можно генерировать его через mixin'ы для всех поддерживаемых расширений. А получив View, уже все как в статье.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Функциональная обработка изображений в D