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

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

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

Post by Redisko »

Скрипт 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 202 times
«data-url-encode.lua» version 0.002a.7z
(6.87 KiB) Downloaded 179 times
«data-url-encode.lua» version 0.001a.7z
(7.83 KiB) Downloaded 162 times
User avatar
Wave
Posts: 1885
Joined: Thu 04 Aug, 2005 18:47
Has thanked: 14 times
Been thanked: 26 times

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

Post by Wave »

Оу, вау! Спасибище!
Пользуюсь ФАРом больше 20 лет © собирательный.
User avatar
John Doe
Бюрократ
Posts: 13801
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 72 times
Been thanked: 425 times
Contact:

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

Post by John Doe »

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 »

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 »

Ок, замечания учтены, добавлена поддержка mime типов шрифтов. Нужен webp?
User avatar
John Doe
Бюрократ
Posts: 13801
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 72 times
Been thanked: 425 times
Contact:

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

Post by John Doe »

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

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

Ведь смысл модуля в том, чтобы применять его в разных скриптах, иначе весь код можно было бы разместить в одном файле.
fps
Posts: 267
Joined: Wed 20 Apr, 2005 06:39
Has thanked: 27 times
Been thanked: 14 times

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

Post by fps »

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 »

Добавил. Не прошло и полгода ) Редко руки доходят, сорри
Shmuel
Posts: 6815
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 526 times

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

Post by Shmuel »

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 »

Скорость работы, лаг при кодировании/декодировании большой картинки. Если нужно, добавлю версию без бинарников. А вообще, было бы здорово, если бы в поставку lua-фар входила полная luajit со всеми стандартными библиотеками.
Shmuel
Posts: 6815
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 526 times

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

Post by Shmuel »

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 »

Shmuel wrote: А насчёт "полная luajit со всеми стандартными библиотеками" - я вас не понял. Чего, по вашему мнению, недостаёт?
Я сначала написал, и только сейчас подумал :) Ведь точно, в стандартной lua нет ничего :) Просто как-то привычно, что в любом пакете lua всегда есть как минимум md5.dll, des56.dll, mime.dll, socket.dll, lfs.dll. А вообще было бы здорово круглым столом решить какие библиотеки хотелось бы иметь в far, и добавить их одним дополнительным пакетом. Например регулярки более или менее привычные, вроде re (голый lpeg это очень сурово).
Shmuel
Posts: 6815
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 526 times

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

Post by Shmuel »

1. Вряд ли в Far будут добавлены бинарные пакеты. К общему мнению здесь прийти очень сложно. Но каждый может сделать свой пакет и поместить его в форуме или ещё где-то в доступном для всех месте.
2. В LuaFAR "из коробки" есть доступ к фаровским регулярным выражениям. Смотрите мануал.
User avatar
zg
zero-gravity
Posts: 6015
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 185 times
Contact:

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

Post by zg »

Redisko wrote: голый lpeg это очень сурово.
не соглашусь, по мне - так lpeg более простой и логичный, другое дело, что регулярки гораздо распространённей.
User avatar
SUSim
Posts: 1633
Joined: Thu 18 Feb, 2010 17:32
Has thanked: 9 times
Been thanked: 25 times

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

Post by SUSim »

Не очень удобно кладете вложения. ИМХО последняя версия должна быть последней!
SimSU ··· ·· -- ··· ··-
Post Reply

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