LINUX.ORG.RU

Notcurses 3.0.12

 , , , ,

Notcurses 3.0.12

1

2

9 января, после трёх месяцев разработки, состоялся выпуск 3.0.12 быстрой кроссплатформенной библиотеки Notcurses, предназначенной для создания текстового пользовательского интерфейса, написанной на языке C и распространяемой по лицензии Apache 2.0. В комплект поставки входят биндинги для C++ (стандарт С++17).
Также поддерживается опциональная интеграция с OpenImageIO, FFmpeg, libgpm и libqrcodegen.

Список изменений:

  • Устранены ошибки при использовании библиотеки musl.
  • Добавлен блиттер октантов NCBLIT_4x2 с поддержкой Unicode 16. В настоящее время ни один из эмуляторов терминала не поддерживает октанты, но ожидается, что ситуация скоро изменится.
  • Исправлена ошибка отображения QR-кодов, и теперь для их отображения всегда используется NCBLIT_2x1 (так что соотношение сторон всегда сохраняется). Это означает, что они недоступны в чистой ASCII-среде, в которой отсутствуют верхняя и нижняя половины.
  • Добавлена опция CMake USE_STATIC_BINARIES (я подкинул идею в PR#2664).
  • Другие изменения, не описанные в NEWS.md.

>>> Список изменений версии 3.0.12 на GitHub

★★★★★

Проверено: maxcom ()

Юбилейная, однако!

Новости 💯
Форум 56
Галерея 10
Голосования 2

dataman ★★★★★
() автор топика

Кстати, автор библиотеки, Nick Black, когда-то форкнул давно не развивающуюся libsixel: https://github.com/libsixel/libsixel.

This branch is 99 commits ahead of saitoha/libsixel:master.

dataman ★★★★★
() автор топика

Кажется, эта библиотека из тех, которые «ни для чего, просто есть».

zombi_pony ★★
()
Ответ на: комментарий от dataman

Правильно ли я понимаю, что блиттер это знакоместо (или половина знакоместа) текстового режима экрана используемое как пиксель?

nvl ★★★★
()
Ответ на: комментарий от dataman

Что именно?

Ну, в чем разница и чем оно лучше своего тёзки.

Gonzo ★★★★★
()
Ответ на: комментарий от dataman

It is furthermore fast as shit

Теперь панятна.

Gonzo ★★★★★
()
Ответ на: комментарий от demidrol

Выше же дал ссылку: https://nick-black.com/dankwiki/index.php/Notcurses#Blitters.

Blitters Multiple blitters are provided, and can be selected whenever pixel data is being rendered. This includes ncvisual objects and qrcodes. If Notcurses is started in ASCII mode (as opposed to UTF-8), all blitters will degrade to NCBLITTER_1x1 (unless NCVISUAL_OPTION_NODEGRADE is provided).

ValueGeometryComments
NCBLITTER_1x11x1->1Uses spaces and sets the background color. The only blitter available in ASCII mode, and the only reliable blitter on the console. Pixel aspect ratio is equivalent to cell aspect ratio, usually resulting in vertical stretching. Lossless. Reliable no matter the font.
NCBLITTER_2x12x1->1Default blitter. Pixel aspect ratio is one-half the cell aspect ratio, which is usually right where you want it. Uses Unicode upper- and lower-half blocks, and spaces. Lossless.
NCBLITTER_2x22x2->1Pixel aspect ratio is equivalent to cell aspect ratio, usually resulting in vertical stretching. Uses Unicode quadrant and three-quarter blocks (in addition to upper- and lower-half blocks, and spaces). Lossy whenever more than two colors are used within a 2x2 pixel square, lossless otherwise (bi- and tri-linear interpolation is used for more than two colors).
NCBLITTER_3x23x2->1Highest quality for most large images. Pixel aspect ratio improves over NCBLITTER_2x2 but is less perfect than NCBLITTER_2x1, leading to slight vertical stretching. Uses Unicode sextants, left and right half blocks, and spaces. Lossy whenever more than two colors are used within a 3x2 pixel square, lossless otherwise (generalized linear interpolation is used for more than two colors).
NCBLITTER_4x24x2->1Uses Braille characters, which have spotty font support.
NCBLITTER_PIXELvariable->1Pixel blitter (see below)
dataman ★★★★★
() автор топика
Ответ на: комментарий от dataman

shit

Там вообще весело если погрепать и по этому слову, и по факу.

pisemsky
()

На питон есть биндинги? Хочу TUI-морду для одной своей консольной поделки на чём-нибудь сделать.

gremlin_the_red ★★★★★
()
Ответ на: комментарий от gremlin_the_red

Wrappers

If you wish to use a language other than C to work with Notcurses, numerous wrappers are available. Several are included in this repository, while others are external.

LanguageLead(s)Repository
AdaJeremy GrosserJeremyGrosser/notcursesada
C++Marek Habersack, nick blackinternal
DartNelson Fernandezkascote/dart_notcurses
JuliaDheepak Krishnamurthykdheepak/Notcurses.jl
NimMichael S. Bradley, Jr.michaelsbradleyjr/nim-notcurses
Pythonnick blackinternal
Pythonigo95862internal
RustJosé Luis Cruzdankamongmen/libnotcurses-sys
ZigJakub Dundalekdundalek/notcurses-zig-example
dataman ★★★★★
() автор топика
Ответ на: комментарий от dataman

Пруфы есть? Я думал, что аалиб - это, практически, максимум того, что можно выжать из текстового режима.

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

anonmyous ★★
()

Чем оно отличается от курсес и зачем оно вообще ?

kto_tama ★★★★★
()
Ответ на: комментарий от dataman

Ну можно же скомпилировать демку и насладиться.

Ну а можно, как выяснилось, набрать команду ncplayer - всё и так уже собрано в федоре. :) Тут какая-то наркомания происходит. Во-первых, он рандомно выбирает реднерер. Можно указать -b но даже тогда, в некоторых случаях он берёт указанный, а в некоторых других выбираеет рандомно. Во-вторых, это не аски-арт. Если делать -b braille, то какое-то подобие аски-арта есть, но все другие рендереры рисуют цветными квадратиками, а не символами. Я не понимаю, как это работает. :) Квадратики настолько маленькие, что видео реально выглядит как видео, лишь немного пикселизованное. Как такое возможно? Откуда столько цветов и подобие пикселей?

И почему не работает звук?

anonmyous ★★
()
Последнее исправление: anonmyous (всего исправлений: 1)
Ответ на: комментарий от anonmyous

Квадратики настолько маленькие, что видео реально выглядит как видео

Вот, я же не зря написал «круче». :)

И почему не работает звук?

Наверное потому, что используются только libswscale, libavformat, libavutil, libavdevice.

dataman ★★★★★
() автор топика
Ответ на: комментарий от dataman

Вот, я же не зря написал «круче». :)

Да, но это, возможно, какой-то трюк. Так быть-то не должно. :) Как они это сделали? Есть идеи? Какое-то очередное расширение от xterm?

Наверное потому, что используются только

Так а кому нужен плеер без звука? Тогда это не круче… с аалибом-то звук у меня был.

Ну и потом… что это за бред с рандомным выбором рендерера, даже если я -b указал? Вот такие приколы я совсем не люблю. :)

anonmyous ★★
()
Последнее исправление: anonmyous (всего исправлений: 1)
Ответ на: комментарий от anonmyous

Как они это сделали? Есть идеи?

Всё расписано: https://nick-black.com/dankwiki/index.php/Notcurses#Rendering

A render operation consists of two logical phases: generation of the rendered scene, and blitting this scene to the terminal (these two phases might actually be interleaved, streaming the output as it is rendered). All ncplanes are locked while generating the frame. Frame generation requires determining an extended grapheme cluster, foreground color, background color, and style for each cell of the physical terminal. Writing the scene requires synthesizing a set of UTF-8-encoded characters and escape codes appropriate for the terminal, and writing this sequence to the output.

И т. д.

Так а кому нужен плеер без звука?
что это за бред с рандомным выбором рендерера, даже если я -b указал?

Напиши автору, он отзывчивый. :)

dataman ★★★★★
() автор топика
Ответ на: комментарий от dataman

И т. д.

Ну это алгоритм подбора глифов под картинку. А меня интересует процееедура отрисовки пикселей на терминале! Так же не…. нашёл

Ок, значит и такое бывает. :)

anonmyous ★★
()
Ответ на: комментарий от dataman

Ну да, сикселы. Но кроме них Kitty Terminal graphics protocol. :)

Так у меня ж не китти… а… так в китти-то он вообще идеальную картинку рисует! Но только это уже не комильфо. Во первых, таких терминалов в природе не было. Во вторых, это просто дикие тормоза и слайд-шоу. Думаю, это уже мало чем от X отличается, и зачем такое в терминал тащить - непонятно. Сделают из терминала Хорг, потом на вейланд перейдут…

А вот сикселы - это, как я понял, реальный терминальный протокол, существовавший в железе, и по тому, быстро работающий. Зачётно. :)

anonmyous ★★
()
Ответ на: комментарий от anonmyous

в китти-то он вообще идеальную картинку рисует!

А у меня в WezTerm, он тоже поддерживает и сикселы, и протокол Kitty.
Как и Chafa, и timg, для отображения картинок.

dataman ★★★★★
() автор топика
Ответ на: комментарий от dataman

А у меня в WezTerm, он тоже поддерживает и сикселы, и протокол Kitty.

Да, WezTerm по-быстрее рендерит, чем китти. Уже не слайд-шоу, а просто замедленная съёмка. :) Но пардон, в этом везтерме декораторы окна не функциональны! По крайней мере под вейландом. Его не то, что ресайзнуть - переместить по экрану нельзя. Давно такого треша не наблюдал. :) Под иксами-то он хоть нормально работает, или это такая фича у него?

И ещё мс как-то блёкло в нём выглядит. Вот в гноме-терминале мс очень контрастно выглядит.

anonmyous ★★
()
Последнее исправление: anonmyous (всего исправлений: 1)
Ответ на: комментарий от anonmyous

Его не то, что ресайзнуть - переместить по экрану нельзя.

«Ночная» сборка?

Под иксами-то он хоть нормально работает

Да, хотя мне не нужно, он у меня всегда распахнутый. :)

dataman ★★★★★
() автор топика
Ответ на: комментарий от dataman

«Ночная» сборка?

Да, с копра.

И я в прошлое сообщение добавил, что под ним мс блёкло выглядит, а в других терминалах он на много контрастнее. У вас не так?

anonmyous ★★
()
Ответ на: комментарий от dataman

Ну вот и останусь я с гноме-терминалом. :) Пускай там аниме не посмотреть (без звука), но зато, работать можно. Даже мс, вон, контрастный какой. :)

anonmyous ★★
()
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.