Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Наложение картинки на картинку
 
 автор: TetRiska   (09.08.2010 в 02:57)   письмо автору
 
 

Всем доброй ночи. Не могу никак разрешить проблему. Перепробовал и так и сяк, писал сам и пробовал чужое, не выходит :(

$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 в 03:51)   письмо автору
 
   для: 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 другую, которая пропорционально уменьшена по наибольшей стороне. Фух. Можно идти спать. :)

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования