В настоящее время я работаю над приложением PHP, которое запускается из командной строки для оптимизации папки изображений.
Приложение PHP является скорее оболочкой для других оптимизаторов изображений, и оно просто выполняет итерацию каталога изахватывает все изображения, затем запускает изображение через соответствующую программу для получения наилучшего результата.
Ниже приведены программы, которые я буду использовать, и то, для чего каждое из них будет использоваться ...
imagemagick
для определения типа файла и преобразования неанимированных GIF-файлов в png
gifsicle
для оптимизации Анимированные Gif изображения
jpegtran
для оптимизации jpg изображения
pngcrush
для оптимизации png изображения
pngquant
для оптимизации png изображения в формате png8
pngout
для оптимизации png изображения в формате png8
Моя проблема: с 1-10 изображениями все работает гладко и довольно быстро, однако, как только я запускаю большую папку с 10 или более изображениями, она становится очень медленной.На самом деле я не вижу хорошего решения этой проблемы, но одна вещь, которая могла бы помочь, состоит в том, чтобы избежать повторной обработки изображений, которые уже были оптимизированы.Поэтому, если у меня есть папка с 100 изображениями, и я оптимизирую эту папку, а затем добавляю 5 новых изображений, перезапустите оптимизатор.Затем необходимо оптимизировать 105 изображений, моя цель - оптимизировать только 5 новых изображений, поскольку предыдущие 100 уже были бы оптимизированы.Одно это значительно улучшит производительность, когда новые изображения будут добавлены в папку изображений.
Я понимаю, что простым решением было бы просто скопировать или переместить изображения в новую папку после их обработки, моя проблема с этим простым решениемв том, что эти изображения используются для веб-сайтов и веб-сайтов, поэтому изображения обычно жестко связаны с исходным кодом веб-сайта, и изменение пути к изображениям усложнит это и иногда может нарушить его.
Некоторые идеи IИмеется: Записать некоторую базу данных текстовых файлов в папки изображений, в которой будут перечислены все изображения, которые уже были обработаны, поэтому при запуске приложения оно будет работать только с изображениями, которых еще нет в этом файле.Другая идея состояла в том, чтобы изменить имя файла, чтобы в имени было какое-то обозначение, чтобы показать, что оно было оптимизировано, третья идея - переместить каждый оптимизированный файл в конечную папку назначения после его оптимизации.Идеи 2 и 3 не очень хороши, потому что они нарушают все ссылки на пути к изображениям в исходном коде веб-сайтов.
Поэтому, если вы можете придумать достойное / хорошее решение этой проблемы, поделитесь?