Это сайт — моя персональная записная книжка. Интересна мне, по большей части, история, своя жизнь и немного программирование.

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

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

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

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

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

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

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

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

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

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

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

oldTV 2010

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

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

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

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

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

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

oldTV 2010

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

Спасибо.
Сейчас 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) 2010

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

[profiles]

а это что?

toz@livejournal 2010

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

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

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

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

oldTV 2010

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

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

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

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

Как то так...

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

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

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

oldTV 2010

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

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

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

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

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

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

oldTV 2010

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

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

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

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

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

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

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

jankkhvej (jankkhvej.blogspot.com) 2010

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

oldTV 2010

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

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

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

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

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

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

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

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

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

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

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

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

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

indeec17 2010

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

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

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

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

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

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

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

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

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

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

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

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

indeec17 2010

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

извини =)