Пакетное скругление картинок v0̶.̶2̶.̶1 0.2.2

Ребята, качайте новую версию, я сделал antialiasing для углов. Ну и пришлось же помучиться! Я немного заболел, пока сидел дома, сделал.

Основная идея такова — рисуется красный круг на чёрном фоне, на него накладывается фильтр Гаусса (тут меня ждала засада — в PHP 4.4.4, который у меня, нет функций imagefilter и imageconvolution, зато последняя, написанная на чистом PHP есть в интернeтах).

Далее, я считаю красную компоненту круга альфа-каналом для указанного цвета фона и накладываю по точкам в четыре угла картинки четыре квадрата изображения с красным кругом. Формула пересчёта rgba → rgb очень простая.

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

Добавлено позже: обновил до 0.2.2 — теперь вся работа с временными файлами делается внутри временной папки (путь до неё берётся из переменных окружения).

Поделиться
Отправить
25 комментариев
Вячеслав Мацнев (vm.moikrug.ru)

А почему у тебя PHP4?

Евгений Степанищев (bolknote.ru)

Комментарий для vm.moikrug.ru:

«Компилятор» использует PHP 4.4.4, интерпретатор весит меньше, чем для PHP 5.

oldTV

Евгений, расскажите как она читает ini файл. Я в него запихиваю профили для своей оболочки и тут случайно выяснил, что этого делать не следует, оказывается mc берет мои ключи и секции и что-то с ними делает.

Может быть заставите читать ее только из секции options? Ну что бы можно было другие секции вставлять для работы скажем оболочки, или чего еще?

Можно так Вас попросить сделать?
Новая версия оболочки готовится....

Евгений Степанищев (bolknote.ru)

Комментарий для oldTV:

Гм, могу сделать, да.

oldTV

Комментарий для Евгения Степанищева:

Спасибо.
Сейчас ini выглядит так:
-​-​quality=95
-​-​...

хотелось бы:
[options]
-​-​quality=95
-​-​...

[profiles]
1=q85|w600|r40|o’c:\temp\out’|bffffff
2=q95|w666|r13|o’c:\temp\out’|bсссссс

Евгений Степанищев (bolknote.ru)

Комментарий для oldTV:

[profiles]

а это что?

toz@livejournal

Антиалиасинг вовсе != простому размытию по гауссу. Там немного интереснее. Но на тех размерах может быть не так и важно

Евгений Степанищев (bolknote.ru)

Комментарий для toz@livejournal:

Я понимаю, это я уж так… популярно :)

oldTV

Комментарий для Евгения Степанищева:

ну что бы не делать для оболочки отдельного ini я использую Ваш. В секцию profiles пишу настройки, которые будут вызываться из программы.

Ну скажем q85­|w600|r40|o’c:\temp\out’|bffffff — один профиль настроек, q95|w666|r13|o’­c:\temp\out’|bсссссс — другой. Идея такая: ручками сделал один раз, запомнил, потом если надо нажал — все из профиля подтянулось.

еще будет секция pcount с одним единсвенным ключом pcount = кол-ву профилей. Это нужно для того, что бы динамически из ini брать профили в менюшку, а не редактировать код и там все прописывать...

Как то так...

Евгений Степанищев (bolknote.ru)

Комментарий для oldTV:

А… понятно. Скоро сделаю.

oldTV

Комментарий для Евгения Степанищева:

а как beep работает? -​-​beep=1 не дал никаких результатов

Евгений Степанищев (bolknote.ru)

Комментарий для oldTV:

Никак :) Забыл убрать :)

Я хотел чтобы звук выдавался после окончания, но подумал, что это бесполезная фича.

oldTV

да не нормальная фича, можно оставить

Евгений Степанищев (bolknote.ru)

Комментарий для oldTV:

Просто мне не удалось изобразить никакого приличного звука, только короткие гудки.

Евгений Степанищев (bolknote.ru)

Комментарий для oldTV:

Сделал. Версия 0.2.3 лежит там же.

jankkhvej (jankkhvej.blogspot.com)

Скругление какое-то размытое на фотках с атомной станции, это действительно не антиалиасинг, а гауссово размытие?

oldTV

Комментарий для Евгения Степанищева:

-q85 — работает, -​-​quality=85 — не работает. Будут ли использованы -​-​?

Евгений Степанищев (bolknote.ru)

Комментарий для jankkhvej.blogspot.com:

Скругление какое-то размытое на фотках с атомной станции, это действительно не антиалиасинг, а гауссово размытие?

Гаусс, он самый.

Евгений Степанищев (bolknote.ru)

Комментарий для oldTV:

-q85 — работает, -​-​quality=85 — не работает. Будут ли использованы -​-​?

Посмотрю, спасибо!

Евгений Степанищев (bolknote.ru)

Комментарий для oldTV:

Посмотрел. А что значит не работает? Я сейчас запустил — работает.

indeec17

спасибо! чудесненько! =)
Прошу добавить настройки/опции:

  • сохранение времени создания файлов в новых файлах
  • при включённом переименовании файлов использовать шаблон для даты типа Ymd_His, в котором, если присутствует слэш прямой или обратный, то левая часть до слэша интерпретируется как папка и создаётся при отсутствии
  • возможность использовать не текущую дату, а дату создания исходного файла для переименования
    При работе с датами файлов из своего фотоаппарата в винде в пхп столкнулся с тем, что некоторые файлы как-то странно хранят даты создания и модификации. В некоторых дата создания была позже даты модификации. В общем, прошу принимать за дату создания — минимальную из дат, а дату модификации — за максимальную из. Как-то так
    $сtime=min($fstats[$filekey][’mtime’],$fstats[$filekey][’ctime’]);
    $mtime=max($fstats[$filekey][’mtime’],$fstats[$filekey][’ctime’]);
oldTV

Комментарий для Евгения Степанищева:

i am sorry, не тот выход смотрел. Все работает, извините

2indeec17 and 2bolk: раз пошла такая пьянка, может быть проще установить сроки релизов, и выложить где нибудь ToDo. А то я не успеваю, я еще под 0.2.2. не сделал оболочку, как бац (нет, я конечно этому рад) уже версия новая. Может быть 0.2.3. назовем стабильным релизом, а остальные версии до стабильного релиза — бетами, или альфами...

Евгений Степанищев (bolknote.ru)

Комментарий для oldTV:

Ох, сроки релизов :) Когда свободный вечер есть, тогда и релиз :)

Евгений Степанищев (bolknote.ru)

Комментарий для indeec17:

Прошу добавить настройки/опции

Ох, мама :) Попробую найти время.

indeec17

Комментарий для Евгения Степанищева:

извини =)

Популярное