memory heap
368 subscribers
2.48K photos
504 videos
52 files
3.07K 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
Исправил в Guile-PNG проблемы с переворотом изображений, и также добавил процедуру переворота на 180 градусов.

Код:
#!/home/avp/.guix-profile/bin/guile \
-L modules -e main -s
!#

(use-modules (oop goops)
(logging logger)
(png)
(png fsm context)
(png image)
(png image-processing))

(define (main args)
(log-add-handler! (make <precise-port-log>
#:port (open-output-file "/tmp/smc.log")))
(let* ((image (png->scm #:debug-mode? #t)))
(let ((result (png-image-rotate-180 image)))
(scm->png result))))


Оказывается если не пытаться сэкономить память и изменения применять к копии изображения, то можно сильно упростить код.

В качестве примера использована картинка с лягушонком Пепе.

#projects #guile_png
🔥6
memory heap
Исправил в Guile-PNG проблемы с переворотом изображений, и также добавил процедуру переворота на 180 градусов. Код: #!/home/avp/.guix-profile/bin/guile \ -L modules -e main -s !# (use-modules (oop goops) (logging logger) (png) …
Реализовал в Guile-PNG методы отражения изображения ("flip") по вертикали и горизонтали. Модуль с поворотом и отражением называется теперь transform.scm (идею подсмотрел в GIMP.)

#projects #guile_png
🔥4
memory heap
Реализовал в Guile-PNG методы отражения изображения ("flip") по вертикали и горизонтали. Модуль с поворотом и отражением называется теперь transform.scm (идею подсмотрел в GIMP.) #projects #guile_png
Подсчёт пикселей одного цвета через png-image-pixel-fold в Guile-PNG:

#!/home/avp/.guix-profile/bin/guile \
-L modules -e main -s
!#

(use-modules (oop goops)
(logging logger)
(rnrs bytevectors)
(png)
(png fsm context)
(png image)
(png graphics pixel)
(png image-processing))

(define (main args)
(log-add-handler! (make <precise-port-log>
#:port (open-output-file "/tmp/smc.log")))
(let* ((image (png->scm #:debug-mode? #t))
(result (png-image-pixel-fold image
0
(lambda (pixel previous . rest)
(if (and (= (bytevector-u8-ref pixel 0) 255)
(= (bytevector-u8-ref pixel 1) 0)
(= (bytevector-u8-ref pixel 2) 0))
(+ previous 1)
previous)))))
(format (current-error-port) "result: ~a~%" result)))


#projects #guile_png
🔥4
Выпустил релиз Guile-PNG 0.7.3:
https://github.com/artyom-poptsov/guile-png/releases/tag/v0.7.3

В новой версии добавлены процедуры для поворота изображений на 90 градусов по часовой и против часовой стрелки, процедура поворота на 180 градусов, процедуры отражения изображения по вертикали и горизонтали.

Также добавлен новый высокоуровневый интерфейс для операций над пикселями изображения.

Новые процедуры в модуле (png image-processing):
- png-image-rotate-90/cw — поворот на 90 градусов по часовой стрелке.
- png-image-rotate-90/ccw — поворот на 90 градусов против часовой стрелки.
- png-image-rotate-180 — поворот на 180 градусов.
- png-image-flip-vertical — вертикальное отражение изображения.
- png-image-flip-horizontal — горизонтальное отражение изображения.

В модуле (png graphics pixel):
- png-image-pixel-for-each — процедура, применяющая указанную процедуру для каждого пикселя изображения.
- png-image-pixel-map — применение указанной процедуры к каждому пикселю копии изображения, заменяя его результатом работы переданной процедуры. Исходное изображение не модифицируется.
- png-image-pixel-fold — применение указанной процедуры к каждому пикселю изображения, разультат вызова процедуры аккумулируется и возвращается, как результат вызова.

#projects #guile #guile_png #lisp
🔥3
Тут что-то происходит.

#projects #guile_png
🔥5
This media is not supported in your browser
VIEW IN TELEGRAM
Когда закончилась мана

r/#Unexpected
👻4
Lulu Cathrinus Grimalkin, "The evolution of a Scheme programmer":
https://erkin.party/blog/200715/evolution/

#scheme #lisp #humor
Устал я от программирования и этого вашего IT. Пишешь код, контрибьютишь в open source, образованность людей повышать пытаешься, а суровая российская действительность всё нависает и нависает мрачно, конца и края этому не видать. Душа требует творчества. Подамся-ка я в панк-рок, буду музыку на злобу дня в подвалах и переходах подземных играть.

Вот и обложка первого ещё не записанного альбома подоспела под авторством mesalliance, как раз вовремя.
12👀2👻1
memory heap pinned a photo
Channel photo updated
This media is not supported in your browser
VIEW IN TELEGRAM
Это мы берём

r/#funny
👻4
Channel photo updated