Я использую Laravel 4.2 для работы с изображениями в Ubuntu 32 бит. Это работает, но размер изображения не изменяется для указанной высоты. Предположим, я пытаюсь изменить размер изображения width=800, height=600
в width=250, height=250
но это изменение размера width=250, height=188
,
Я использовал следующий код в моем контроллере.
$imageType = array(
'detail_page' => array(
'width' => 250,
'height' => 250
),
);
$file = Input::file('album_image');
if($file->isValid()) {
$file_name = microtime();
$file_name = str_replace(' ', '_', $file_name);
$file_name = str_replace('.', '_', $file_name);
$file_name = $file_name . '.' . $file->getClientOriginalExtension();
$file->move(public_path() . '/album_uploads/', $file_name);
foreach ($imageType as $key => $value) {
$file = Image::make(sprintf('album_uploads/%s',$file_name))->resize($value['width'], $value['height'],
function($constraint) {
$constraint->aspectRatio();
});
$file->save(public_path().'/album_uploads/'.$value['width'].'X'.$value['height'].'/'. $file_name);
}
$album_image_url = URL::to('album_uploads/' . $file_name);
}
Снимите ограничение соотношения сторон: 800×600 -> 250×188 -> 4×3
function($constraint) {
$constraint->aspectRatio();
}
Других решений пока нет …