memory heap
352 subscribers
2.42K photos
497 videos
52 files
3.01K links
science ∩ art = wonder

all memory blocks here are allocated by @a_v_p

GitHub: https://github.com/artyom-poptsov
Mastodon: https://fosstodon.org/@avp

https://memory-heap.org/~avp/
Download Telegram
Измеряю качество обработки изображений в самописной библиотеке PNG с помощью шакалов. 9 шакалов из 9, я считаю.

#projects #guile #png #parser #lisp
👍4
😈2❤‍🔥1
Уже лучше.

#projects #guile #png #parser
Наконец-то получилось корректно декодировать изображение PNG, где встречаются все 5 видов фильтров.

По поводу корректности обработки альфа-канала пока не уверен, нужны ещё тесты.

А вот здесь вы можете увидеть результат обработки декодированного изображения — инверсии цветов.

\o/

#projects #guile #png #parser
🔥4
Пример эффекта соларизации с порогом 100. Соларизация похоже на инверсию цветов, с той разницей, что при соларизации инверсия цветов применяется только для тех цветовых каналов, значения которых больше (или меньше, как в моём случае), чем пороговое. Знак больше-меньше выбирается вместе с пороговым значением и влияет на конечный эффект.

Кстати, эту картинку я сделал как-то давно для группы своих дипломников в Telegram.

Исходный код:
(use-modules (png)
(png image)
(png image-processing))

(define (main args)
(let* ((image (png->scm))
(result (png-image-filter-solarize image
100)))
(scm->png result)))

#projects #guile #png #parser #image_processing
3
Выпустил релиз Guile-PNG 0.3.0:
https://github.com/artyom-poptsov/guile-png/releases/tag/v0.3.0

В новом релизе:
- Улучшен парсер PNG.
- Улучшен кодировщик PNG.
- Библиотека теперь даёт возможность создавать PNG-изображения "с нуля", а не только загружать готовые.
- Добавлена возможность рисовать многоугольники и прямоугольники с заливкой.
- Обновлена и дополнена документация.
- Добавлены новые тесты.

#guile #png #parser #projects #dev
2👍2
Добавил возможность нумеровать столбцы и строки таблицы в Guile-DSV. Будет в следующем релизе.

#projects #guile #dsv #parser
5
Выпустил релиз Guile-DSV 0.7.1:
https://github.com/artyom-poptsov/guile-dsv/releases/tag/v0.7.1

В новом релизе реализована возможность добавлять нумерацию строкам и столбцам таблицы.

Анонс в рассылке Guile-User:
https://mail.gnu.org/archive/html/guile-user/2023-10/msg00082.html

#guile #projects #dsv #parser
1
#projects #guile #guile_smc #parser

Выпустил релиз Guile-SMC 0.6.3:
https://github.com/artyom-poptsov/guile-smc/releases/tag/v0.6.3

Ключевые изменения:
- Парсер PlantUML теперь обрабатывает многострочные комментарии.
- Исправление ошибки в (smc context functional char): теперь процедура pre-action правильно считает количество прочитанных строк (до этого количество прочитанных строк инкрементировалось каждый раз, когда читался любой новый символ.)
- Парсер PlantUML теперь пропускает блоки, начинающиеся с hide (например, hide empty description)
- Для блока legend парсер PlantUML теперь позволяет указывать конец блока, как end legend (в дополнении к endlegend.)
- Улучшение информативности ошибок в парсере PlantUML.
1
Выпустил релиз Guile-DSV 0.7.2:
https://github.com/artyom-poptsov/guile-dsv/releases/tag/v0.7.2

В новой версии:
- Исправлена ошибка обработки таблиц с неравномерным количеством столбцов в строках. Теперь Guile-DSV предоставляет возможность проверять корректность таблиц на этапе парсинга и перед выводом, и выдавать ошибку на более ранних этапах. Также ошибки теперь более понятные и указывают на проблемное место в исходных данных. Это поведение включено по-умолчанию для CLI. Для API же это по-умолчанию выключено, т.к. это во-первых сохраняет совместимость со старым поведением, и во-вторых позволяет пользователю самостоятельно решить, нужно ли выдавать ошибку при чтении проблемных данных, или же обработать это другим способом, уже после чтения.
- Исправлена ошибка с форматированием таблиц: теперь оно корректно работает для таблиц, чей размер меньше двух столбцов.
- Исправлен make distcheck — теперь оно корректно завершается.
- Добавлены новые файлы в репозиторий: ARCHITECTURE.org описывает архитектуру проекта (как предложено здесь); CODE_OF_CONDUCT.org описывает правила для сообщества разработчиков и контрибьюторов, как предложено здесь.

#guile #guile_dsv #parser #projects #scheme
2👾1