|
|
|
| Всем доброй ночи. Не могу никак разрешить проблему. Перепробовал и так и сяк, писал сам и пробовал чужое, не выходит :(
$image = date("YmdHis").rand(1000,9999).".jpg";
$smallimage = $_SERVER['DOCUMENT_ROOT']."/uploads/items/".date("Y-m")."/thumbs/". $image;
$w = 127; $h = 127;
$ratio = $w/$h;
$size_img = @getimagesize($bigimage);
if (($size_img[0]<$w) && ($size_img[1]<$h)) return true;
$src_ratio=$size_img[0]/$size_img[1];
if ($ratio<$src_ratio)
{
$h = $w/$src_ratio;
}
else
{
$w = $h*$src_ratio;
}
$dest_img = imagecreatetruecolor($w, $h);
$white = imagecolorallocate($dest_img, 255, 255, 255);
if ($size_img[2]==2) $src_img = imagecreatefromjpeg($smallimage);
imagecopyresampled($dest_img, $src_img, 0, 0, 0, 0, $w, $h, $size_img[0], $size_img[1]);
if ($size_img[2]==2) imagejpeg($dest_img, $smallimage);
imagedestroy($dest_img);
imagedestroy($src_img);
return true;
|
$smallimage - путь к картинке. В итоге работы скрипта получаем картинку, которая пропорционально уменьшена по наибольшей стороне. Но тут не все. Мне надо, чтобы исходная картинка была 127х127, а в ней уже бы размещалась уменьшенная картинка строго по центру, вот никак не могу это реализовать. Помогите пожалуйста. | |
|
|
|
|
|
|
|
для: TetRiska
(09.08.2010 в 02:57)
| | Гммм...Решил.
$smallimage = $_SERVER['DOCUMENT_ROOT']."/uploads/items/".date("Y-m")."/thumbs/". $image;
$w = 127; $h = 127;
$ratio = $w/$h;
$size_img = @getimagesize($smallimage);
if (($size_img[0]<$w) && ($size_img[1]<$h)) return true;
$src_ratio=$size_img[0]/$size_img[1];
if ($ratio<$src_ratio){
$h = $w/$src_ratio;
}
else{
$w = $h*$src_ratio;
}
$dest_img = $_SERVER['DOCUMENT_ROOT']."/uploads/items/background.jpg";
$dest_img = imagecreatefromjpeg($dest_img);
$src_img = imagecreatefromjpeg($smallimage);
if($w > $h){
$wh = round(($w - $h)/2);
$hw = 0;
}else{
$wh = 0;
$hw = round(($h - $w)/2);
}
imagecopyresampled($dest_img, $src_img, $hw, $wh, 0, 0, $w, $h, $size_img[0], $size_img[1]);
imagejpeg($dest_img, $smallimage);
imagedestroy($dest_img);
imagedestroy($src_img);
|
Налаживает ровно по центру белой картинки 127х127 другую, которая пропорционально уменьшена по наибольшей стороне. Фух. Можно идти спать. :) | |
|
|
|