Я требую, чтобы все мои загрузки изображений имели фиксированную высоту 225 пикселей и помещались в квадрат 225×225. Ширина будет варьироваться в зависимости от соотношения сторон с максимумом 225.
Ниже не учитывается гибкая ширина и просто делает каждое изображение 225×225.
cl_image_tag("sample.jpg", array("width"=>225, "height"=>225, "crop"=>"fill"))
http://cloudinary.com/documentation/image_transformations#fill
Вот мои требования:
1) Если загружено изображение 150 х 300 ч. Результат будет 112w x 225h.
2) Если загружено изображение 500 х 250 ч. Результат будет 225w x 225h.
3) Если загружено изображение 500 х 100 ч. Результат будет 225w x 225h.
4) Если загружено изображение 50 х 100 ч. Результат будет 112w x 225h.
5) Если загружено изображение 100 х 50 ч. Результат будет 225w x 225h.
Нужно использовать цепные преобразования чтобы сделать это. Масштаб сначала затем обрезать, используя LIMIT заполнить. Ограничьте заполнение только кадрированием, если изображение больше, чем размер рамки кадрирования, поэтому меньшие изображения не обрезаются.
array("height"=>225, "crop"=>"scale"),
array("width"=>225, "height"=>225, "crop"=>"lfill")
Полный код PHP:
echo cl_image_upload_tag('test',
array(
"public_id" => "filepath",
"format" => "jpg",
"callback" => $cors_location,
"html" => array(
"multiple" => true
),
"transformation" => array(
array("height"=>225, "crop"=>"scale"),
array("width"=>225, "height"=>225, "crop"=>"lfill")
)
)
);
Других решений пока нет …