Я решал проблему следующим образом (много напарсенных товаров с разных сайтов в разном размере, форматах и соотношении
был написан на python консольный скрипт, который гуляет по картинками товаров через БД, через графические бибилиотеки - удаляет белое вокруг картинки (обрезает сплошное белое с краев - чтобы далее картинка была в "полный" размер блока), "квадратит" изображения - делает квадрат по самой широкой стороне, размещает картинку в центр квадрата. Далее картинку масштабирует к единому на сайте размеру, наносит watermark, делает mid thumbnail (в virtuemart нет такого размера, но в дизайне есть) и thumbnail, сохраняя с переменным качеством jpg порядка 8x% для минимизации размера (thumbnail - хуже, большое - лучше). На php можно написать аналог, сам ранее делал упрощенный (без обрезки белого фона).
На выходе получил что все картинки квадратной геометии единого размера без белых зазоров в половину ширины картинки.
+ как бонус имена файлов картинок переименовываются в транслите по названию товара, т.к. при парсинге на источниках были DSC123111.jpg, 48.png и подобные - не красиво со всех сторон.
+ вносятся EXIF данные с GPS меткой, якобы фоткалось лично и это уникальный оригнал.
Даже Яндекс оценил результат, т.к. через сглаживание, контраст и цветовой балланс (была идея их ещё отражать зеркально, но есть надписи) при ресайзе получаются качественные картинки - больше и детальнее чем оригиналы с сайтов-источников.
Исходник публиковать не буду не могу, т.к. часть внутренней системы парсинга/корректуры цен в обслуживаемых проектах, но алгоритм полагаю ясен, задача - реализуема в 4-8 дней работы уравновешенного программиста.