Base64-кодирование картинок по схеме «data: URL»

Здесь выкладываются готовые к использованию макросы и скрипты.
Post Reply
Redisko
Posts: 12
Joined: Tue 06 Jul, 2010 13:15
Has thanked: 1 time
Been thanked: 1 time

Base64-кодирование картинок по схеме «data: URL»

Post by Redisko » Sun 16 Oct, 2016 23:05

Скрипт Base64-кодирования изображений по схеме «data: URL»

Установка
Распаковать архив в папку Profile

Использование
Установить каретку в позицию пути-имени файла-изображения и нажать Ctrl+R.
Имя файла должно быть обрамлено круглыми скобками либо кавычками, одинарными или двойными, как в следующих типичных кейсах:

Code: Select all

    background-image: url(some-image.jpg);
    list-style-image: url('also-image.jpg');
    <img src="another-image.jpg" />
В случае присутствия непустого выделения, оно будет интерпретировано как имя файла.

«data-url-encode.lua» version 0.001a



«Data-URL-Encoder» version 0.002a
Поддерживаются mime types следующих форматов: шрифты ttf, otf, woff, woff2; изображения: jpg, png, gif, ico, (jpc+jp2 jpeg2000, swf, swc, bmp, psd, iff, tiff — о боже зачем?! лучше бы wepb добавил, идиот).



«Data-URL-Encoder» version 0.003b
Добавлено декодирование base64-строки в файл. Работает аналогично кодированию: base64-строка должна быть обрамлена кавычками либо скобками, либо должна содержаться в выделении. Шорткат: «Ctrl+Alt+R».
Ради быстрого base64 кодирования/декодирования в пакет добавлены стандартные библиотеки luajit: ltn12 и mime в составе двух lua-файлов и одной dll (mime).

Attachments
«data-url-encode.lua» version 0.003b.7z
(44.47 KiB) Downloaded 14 times
«data-url-encode.lua» version 0.002a.7z
(6.87 KiB) Downloaded 43 times
«data-url-encode.lua» version 0.001a.7z
(7.83 KiB) Downloaded 43 times

User avatar
Wave
Posts: 1706
Joined: Thu 04 Aug, 2005 18:47
Location: Харьков, Украина
Has thanked: 2 times
Been thanked: 9 times
Contact:

Base64-кодирование картинок по схеме «data: URL»

Post by Wave » Mon 17 Oct, 2016 09:00

Оу, вау! Спасибище!
Пользуюсь ФАРом больше 15 лет © собирательный.

User avatar
John Doe
Бюрократ
Posts: 11075
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 11 times
Been thanked: 64 times

Base64-кодирование картинок по схеме «data: URL»

Post by John Doe » Mon 17 Oct, 2016 14:18

Redisko wrote: С персональной скриптопомойки
Имхо для таких случаев лучше бы использовать подпапку.

Redisko
Posts: 12
Joined: Tue 06 Jul, 2010 13:15
Has thanked: 1 time
Been thanked: 1 time

Base64-кодирование картинок по схеме «data: URL»

Post by Redisko » Mon 17 Oct, 2016 23:22

John Doe wrote: Имхо для таких случаев лучше бы использовать подпапку.
Ок, учту. Там все надо порефакторить, все зависимости лишние, кроме base64.lua, из image-info.lua нужна только проверка сигнатур, кроме того было бы хорошо поддерживать и файлы шрифтов. Так что перепишу, будет пара файлов: макрос и расшаренный base64.lua.

PS. И да, я извиняюсь за постинг в другой раздел, правила не дочитал, моя вина, некрасиво вышло.

Redisko
Posts: 12
Joined: Tue 06 Jul, 2010 13:15
Has thanked: 1 time
Been thanked: 1 time

Base64-кодирование картинок по схеме «data: URL»

Post by Redisko » Wed 19 Oct, 2016 14:23

Ок, замечания учтены, добавлена поддержка mime типов шрифтов. Нужен webp?

User avatar
John Doe
Бюрократ
Posts: 11075
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 11 times
Been thanked: 64 times

Base64-кодирование картинок по схеме «data: URL»

Post by John Doe » Wed 19 Oct, 2016 15:24

Redisko wrote: base64.lua                       — Base64 кодирование. Нагуглен на просторах гитхаба
Тут не помешает привести ссылку https://github.com/ErnieE5/ee5_base64

И что касается «замечаний», то после вашего рефакторинга они не очень актуальны, ведь остался один модуль, и он общего назначения.
Т.е. в данном случае я бы его не помещал в подпапку (но оставил бы предлагаемое имя ee5_base64, для уникальности).

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

fps
Posts: 163
Joined: Wed 20 Apr, 2005 06:39
Has thanked: 11 times
Been thanked: 3 times

Base64-кодирование картинок по схеме «data: URL»

Post by fps » Thu 20 Oct, 2016 15:19

Redisko, а нет в планах добавить обратное преобразование?

Redisko
Posts: 12
Joined: Tue 06 Jul, 2010 13:15
Has thanked: 1 time
Been thanked: 1 time

Base64-кодирование картинок по схеме «data: URL»

Post by Redisko » Sun 14 May, 2017 04:46

Добавил. Не прошло и полгода ) Редко руки доходят, сорри

Shmuel
Posts: 5041
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 11 times
Been thanked: 133 times

Base64-кодирование картинок по схеме «data: URL»

Post by Shmuel » Sun 14 May, 2017 05:56

Redisko wrote: Добавил.
Чем вызвана смена библиотеки (и появление бинарников)? Ведь та, что использовалась в версии 002, тоже умеет декодировать.

Redisko
Posts: 12
Joined: Tue 06 Jul, 2010 13:15
Has thanked: 1 time
Been thanked: 1 time

Base64-кодирование картинок по схеме «data: URL»

Post by Redisko » Sun 14 May, 2017 13:57

Скорость работы, лаг при кодировании/декодировании большой картинки. Если нужно, добавлю версию без бинарников. А вообще, было бы здорово, если бы в поставку lua-фар входила полная luajit со всеми стандартными библиотеками.

Shmuel
Posts: 5041
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 11 times
Been thanked: 133 times

Base64-кодирование картинок по схеме «data: URL»

Post by Shmuel » Sun 14 May, 2017 14:04

Redisko wrote: Если нужно, добавлю версию без бинарников
Пока не надо, я из любопытства спрашивал.
Redisko wrote: было бы здорово, если бы в поставку lua-фар входила полная luajit со всеми стандартными библиотеками.
Отдельной поставки LuaFAR не существует. В составе Far есть luafar3.dll - вот и всё.
А насчёт "полная luajit со всеми стандартными библиотеками" - я вас не понял. Чего, по вашему мнению, недостаёт?

Redisko
Posts: 12
Joined: Tue 06 Jul, 2010 13:15
Has thanked: 1 time
Been thanked: 1 time

Base64-кодирование картинок по схеме «data: URL»

Post by Redisko » Sun 14 May, 2017 14:47

Shmuel wrote: А насчёт "полная luajit со всеми стандартными библиотеками" - я вас не понял. Чего, по вашему мнению, недостаёт?
Я сначала написал, и только сейчас подумал :) Ведь точно, в стандартной lua нет ничего :) Просто как-то привычно, что в любом пакете lua всегда есть как минимум md5.dll, des56.dll, mime.dll, socket.dll, lfs.dll. А вообще было бы здорово круглым столом решить какие библиотеки хотелось бы иметь в far, и добавить их одним дополнительным пакетом. Например регулярки более или менее привычные, вроде re (голый lpeg это очень сурово).

Shmuel
Posts: 5041
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 11 times
Been thanked: 133 times

Base64-кодирование картинок по схеме «data: URL»

Post by Shmuel » Sun 14 May, 2017 14:53

1. Вряд ли в Far будут добавлены бинарные пакеты. К общему мнению здесь прийти очень сложно. Но каждый может сделать свой пакет и поместить его в форуме или ещё где-то в доступном для всех месте.
2. В LuaFAR "из коробки" есть доступ к фаровским регулярным выражениям. Смотрите мануал.

User avatar
zg
zero-gravity
Posts: 5231
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 42 times
Contact:

Base64-кодирование картинок по схеме «data: URL»

Post by zg » Sun 14 May, 2017 17:23

Redisko wrote: голый lpeg это очень сурово.
не соглашусь, по мне - так lpeg более простой и логичный, другое дело, что регулярки гораздо распространённей.

Post Reply

Return to “Полезные макросы и скрипты”

Who is online

Users browsing this forum: No registered users and 1 guest