Доброго времени суток, у меня возникла проблема при смене размера фото, у меня есть код, как меняет размер фото, на первой фото он сработал хорошо с размером 350х200, так же мне нужно чтобы он работал при размере 100х800, чтобы картинку не искривляло, а просто добавляли поля, а сама картинка чтобы была в центре, может кто сталкивался с подобной проблемой
$size = array($source_width, $source_height);
$thumb = imagecreatetruecolor($w, $h);
$src_aspect = $size[0] / $size[1];
$thumb_aspect = $w / $h;
if($src_aspect < $thumb_aspect) {
$scale = $h / $size[1];
$new_size = array($h * $src_aspect, $h);
$src_pos = array(($size[0] * $scale - $w) / $scale / 2, 0);
} else {
$new_size = array($w, $h);
$src_pos = array(0,0);
}
$new_size[0] = max($new_size[0], 1);
$new_size[1] = max($new_size[1], 1);
imagecopyresampled($thumb, $source_gdim, 0, 0, $src_pos[0], $src_pos[1], $new_size[0], $new_size[1], $size[0], $size[1]);
imagejpeg($thumb, "images/photo/resize/"."$name"."($w"."x"."$h"." 1).");
return $thumb;
Условие $src_aspect < $thumb_aspect
определяет с каких сторон добавлять поля (с боков или сверху-снизу).
Эта часть кода считает поля с боков:
if($src_aspect < $thumb_aspect) {
$scale = $h / $size[1];
$new_size = array($h * $src_aspect, $h);
$src_pos = array(($size[0] * $scale - $w) / $scale / 2, 0);
Так сделайте аналогично и для полей сверху и снизу (Тут так-же как и в первой части, только поменять местами высоту и ширину):
} else {
$scale = $w / $size[0];
$new_size = array($w , $w* $src_aspect);
$src_pos = array(0, ($size[1] * $scale - $h) / $scale / 2);
}
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Как передать через тест файл, например картинку?
Как работает: В настройках CMS Указывю ссылки вида /?qa=123/why-do-birds-sing Залогиненные пользователи через сайт - без проблем выходят из ак-ка Залогиненнные...