Я хочу, чтобы преобразовать 1200x1200
изображение в 1200x600
.
Но я не хочу потерять пропорции изображения, и поэтому я хочу добавить белую рамку влево и вправо и иметь изображение посередине.
Окончательное изображение будет похоже на границу слева и справа и квадратное изображение в середине, затем я сохраню его в папку и пользователь в моем проекте.
Возможно ли это с помощью библиотеки GD?
Вы можете написать свою собственную математическую функцию для отображения изображения в холсте определенного размера. Здесь математическая функция, которую я использую,
function resize_image($img,$maxwidth,$maxheight) {
//This function will return the specified dimension(width,height)
//dimension[0] - width
//dimension[1] - height
$dimension = array();
$imginfo = getimagesize($img);
$imgwidth = $imginfo[0];
$imgheight = $imginfo[1];
if($imgwidth > $maxwidth){
$ratio = $maxwidth/$imgwidth;
$newwidth = round($imgwidth*$ratio);
$newheight = round($imgheight*$ratio);
if($newheight > $maxheight){
$ratio = $maxheight/$newheight;
$dimension[] = round($newwidth*$ratio);
$dimension[] = round($newheight*$ratio);
return $dimension;
}else{
$dimension[] = $newwidth;
$dimension[] = $newheight;
return $dimension;
}
}elseif($imgheight > $maxheight){
$ratio = $maxheight/$imgheight;
$newwidth = round($imgwidth*$ratio);
$newheight = round($imgheight*$ratio);
if($newwidth > $maxwidth){
$ratio = $maxwidth/$newwidth;
$dimension[] = round($newwidth*$ratio);
$dimension[] = round($newheight*$ratio);
return $dimension;
}else{
$dimension[] = $newwidth;
$dimension[] = $newheight;
return $dimension;
}
}else{
$dimension[] = $imgwidth;
$dimension[] = $imgheight;
return $dimension;
}
}
Предположим, что размер изображения 1200x1200 (высота: 1200, ширина: 1200), а размер вашего холста (где вы хотите отобразить изображение) - 1200x600 (высота: 1200, ширина: 600), вы можете вызвать эту функцию resize_image следующим образом:
$dimension = resize_image("{$your_image_path}.jpg",600,1200);
$width = $dimension[0];
$height = $dimension[1];
и после получения соответствующих размеров, покажите свое изображение, как это,
<img src="your_image_path.jpg" alt="Image" height="<?php echo $height; ?>" width="<?php echo $width; ?>" />