Класс обработки изображений в PHP

Мне нужно создать класс обработки фотографий PHP, я знаю, что МНОГИЕ, которые уже существуют для публики, но мне нужно построить один, чтобы сделать то, что мне нужно, и ничего лишнего и ничего меньше.

Мне нужен мой класс, чтобы сделать это …

1)
Я создаю новый экземпляр моего класса, и я передаю либо URL-адрес фотографии, либо путь к локальной фотографии, загружаемой с использованием формы POST.

2)
Затем мне нужно взять основное изображение и проверить его размеры, если он шире 800 пикселей, мне нужно изменить его размер, если он не шире, чем 800, тогда я просто оставлю его

3)
Теперь нам нужно создать два эскиза по размеру этого изображения, если мы изменим размер изображения, чтобы соответствовать нашему требованию 800 пикселей, тогда мы используем этот образ для создания эскизов, иначе мы сделаем наши эскизы из исходного изображения.

4)
Затем мы обновляем несколько записей базы данных

Затем завершено.

Я знаю, что это не так сложно, но мне нужно построить это с наилучшей производительностью, например, если пользователь загружает фотографию размером 2 МБ, я не хочу вздымать память и продолжать создавать миниатюры с этой фотографии, если мы уже сделали меньше image Я думаю, что тогда он должен использовать меньшее изображение для создания эскизов.

Со всей этой информацией сейчас, есть ли у вас какие-либо предложения о том, как это сделать в GD или imagemagick. Если я создаю метод, который делает миниатюры, как я должен быть уверен, что он будет продолжать использовать меньшие изображения, чтобы делать другие более мелкие изображения? Я посмотрел на некоторые существующие классы изображений, и все они очень сложны и переделаны IMO, однако ни одна из них не выполняет именно эту простую задачу.

Библиотека PHP GD использует объект ресурса для представления изображений. Вы можете использовать imagecopyresampled или imagecopyresized для изменения размера изображения.

Если он был изменен, используйте новый объект с измененным размером для будущих операций, иначе используйте исходный объект ресурса.