Исправил в Guile-PNG проблемы с переворотом изображений, и также добавил процедуру переворота на 180 градусов.
Код:
Оказывается если не пытаться сэкономить память и изменения применять к копии изображения, то можно сильно упростить код.
В качестве примера использована картинка с лягушонком Пепе.
#projects #guile_png
Код:
#!/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") по вертикали и горизонтали. Модуль с поворотом и отражением называется теперь
#projects #guile_png
transform.scm (идею подсмотрел в GIMP.)#projects #guile_png
🔥4
memory heap
Реализовал в Guile-PNG методы отражения изображения ("flip") по вертикали и горизонтали. Модуль с поворотом и отражением называется теперь transform.scm (идею подсмотрел в GIMP.) #projects #guile_png
Подсчёт пикселей одного цвета через
#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
GitHub
GitHub - artyom-poptsov/guile-png: Portable Network Graphics (PNG) library for GNU Guile.
Portable Network Graphics (PNG) library for GNU Guile. - artyom-poptsov/guile-png
🔥4
Выпустил релиз Guile-PNG 0.7.3:
https://github.com/artyom-poptsov/guile-png/releases/tag/v0.7.3
В новой версии добавлены процедуры для поворота изображений на 90 градусов по часовой и против часовой стрелки, процедура поворота на 180 градусов, процедуры отражения изображения по вертикали и горизонтали.
Также добавлен новый высокоуровневый интерфейс для операций над пикселями изображения.
Новые процедуры в модуле
-
-
-
-
-
В модуле
-
-
-
#projects #guile #guile_png #lisp
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
GitHub
Release v0.7.3 · artyom-poptsov/guile-png
Table of Contents
Changes in version 0.7.3 (2024-03-30)
Implement image transformation methods
New high-level API for manipulating image pixels
Update and improve the documentation
Add new tests
...
Changes in version 0.7.3 (2024-03-30)
Implement image transformation methods
New high-level API for manipulating image pixels
Update and improve the documentation
Add new tests
...
🔥3
#music #music_metal
Классный трек.
Rotting Christ, "Sanctus Diavolos":
https://www.youtube.com/watch?v=kR9wkzwDK2Y
Rotting Christ, "Sanctus Diavolos" (live):
https://www.youtube.com/watch?v=ab3S_GklXpU
Классный трек.
Rotting Christ, "Sanctus Diavolos":
https://www.youtube.com/watch?v=kR9wkzwDK2Y
Rotting Christ, "Sanctus Diavolos" (live):
https://www.youtube.com/watch?v=ab3S_GklXpU
YouTube
Sanctus Diavolos
Provided to YouTube by Century Media
Sanctus Diavolos · Rotting Christ
Sanctus Diavolos
℗ 2004 Century Media Records Ltd.
Released on: 2004-07-13
Composer, Producer: Not Documented
Auto-generated by YouTube.
Sanctus Diavolos · Rotting Christ
Sanctus Diavolos
℗ 2004 Century Media Records Ltd.
Released on: 2004-07-13
Composer, Producer: Not Documented
Auto-generated by YouTube.
Lulu Cathrinus Grimalkin, "The evolution of a Scheme programmer":
https://erkin.party/blog/200715/evolution/
#scheme #lisp #humor
https://erkin.party/blog/200715/evolution/
#scheme #lisp #humor
erkin.party
Post title
Устал я от программирования и этого вашего IT. Пишешь код, контрибьютишь в open source, образованность людей повышать пытаешься, а суровая российская действительность всё нависает и нависает мрачно, конца и края этому не видать. Душа требует творчества. Подамся-ка я в панк-рок, буду музыку на злобу дня в подвалах и переходах подземных играть.
Вот и обложка первого ещё не записанного альбома подоспела под авторством mesalliance, как раз вовремя.
Вот и обложка первого ещё не записанного альбома подоспела под авторством mesalliance, как раз вовремя.
⚡12👀2👻1
memory heap
Устал я от программирования и этого вашего IT. Пишешь код, контрибьютишь в open source, образованность людей повышать пытаешься, а суровая российская действительность всё нависает и нависает мрачно, конца и края этому не видать. Душа требует творчества.…
#music #technology
А вот и прекрасный инструмент для включения в музыкальную группу.
mitxela, "Robot Slide Whistle Orchestrion":
https://youtu.be/6JeV53LZ8ag
А вот и прекрасный инструмент для включения в музыкальную группу.
mitxela, "Robot Slide Whistle Orchestrion":
https://youtu.be/6JeV53LZ8ag
YouTube
Robot Slide Whistle Orchestrion
Inevitable really.
More info: https://mitxela.com/slide2
Emulator: https://mitxela.com/projects/slide2/emu
Patreon: https://patreon.com/mitxela
Paypal: https://paypal.me/mitxela
00:00 Mii channel
01:22 Talking
02:51 Magic roundabout
03:36 Insides
04:47…
More info: https://mitxela.com/slide2
Emulator: https://mitxela.com/projects/slide2/emu
Patreon: https://patreon.com/mitxela
Paypal: https://paypal.me/mitxela
00:00 Mii channel
01:22 Talking
02:51 Magic roundabout
03:36 Insides
04:47…
🔥1
#music_theory
Очень интересно.
Гайд по всем видам музыкального слуха:
https://www.youtube.com/watch?v=UX1i5RYoD5k
Очень интересно.
Гайд по всем видам музыкального слуха:
https://www.youtube.com/watch?v=UX1i5RYoD5k
YouTube
Гайд по всем видам музыкального слуха
Таймкоды:
00:00 – начало
00:25 – все виды слуха
00:52 – первая группа
02:20 – абсолютный слух
05:11 – относительный слух
05:49 – мелодический слух
07:18 – интервальный слух
07:49 – гармонический слух
08:32 – ладотональный слух
08:55 – обобщение
09:49…
00:00 – начало
00:25 – все виды слуха
00:52 – первая группа
02:20 – абсолютный слух
05:11 – относительный слух
05:49 – мелодический слух
07:18 – интервальный слух
07:49 – гармонический слух
08:32 – ладотональный слух
08:55 – обобщение
09:49…
🔥3
memory heap
Устал я от программирования и этого вашего IT. Пишешь код, контрибьютишь в open source, образованность людей повышать пытаешься, а суровая российская действительность всё нависает и нависает мрачно, конца и края этому не видать. Душа требует творчества.…
Ну что, 1-е апреля прошло, пора снова возвращаться в IT:
https://www.youtube.com/watch?v=bLHL75H_VEM
https://www.youtube.com/watch?v=bLHL75H_VEM
YouTube
You're dereferencing a null pointer!
Just Bret Hart doing some code review.
🔥1
#music
Pink Floyd, "The Great Gig In The Sky" (50th Anniversary Competition Winner's Video):
https://youtu.be/MTovRtERP5U
Pink Floyd, "The Great Gig In The Sky" (50th Anniversary Competition Winner's Video):
https://youtu.be/MTovRtERP5U
YouTube
Pink Floyd - The Great Gig In The Sky (50th Anniversary Competition Winner's Video)
The winning video by Bruno Mazzilli for The Great Gig In The Sky in Pink Floyd's The Dark Side Of The Moon 50th Anniversary Animation Video Competition.
The 10 winning videos will be published at 5pm UK time every day from 29th March to 7th April accompanied…
The 10 winning videos will be published at 5pm UK time every day from 29th March to 7th April accompanied…
🔥1

