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

Форум PHP

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

 

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

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

тема: Наложение уменьшенного изображения на подложку (другое изображение)
 
 автор: ar41k   (23.02.2010 в 23:49)   письмо автору
 
 

Перематерился ))

Помогите пожалуйста, кто может... )

Необходимо вывести уменьшенное изображение на подложку (другое изображение)

Не понимаю, в чем дело, но ничего не выходит...

Будьте добры, напишите, как пример, мелкий скрипт на вывод изображения, ссылка на которое находится в перменной, например $kartinka, на другое изображение, например $img.

Наверное, надо использовать imagecopyresized? Или imagecopyresampled?
Попробовал... Но из за большого количества параметров запутался)
Максимум, чего я добивался - это вывод маленького изображения в браузер, или сохранение маленького изображения в папку...

Поможете?)

  Ответить  
 
 автор: tvv123456   (24.02.2010 в 01:16)   письмо автору
 
   для: ar41k   (23.02.2010 в 23:49)
 

Вот вам в помощь:


<?
function img_resize($src, $dest, $width, $height, $rgb = 0xFFFFFF, $quality = 100) { 
                             if (!
file_exists($src)) return false; 
                                 
$size = getimagesize($src); 
                             if (
$size === false) return false; 
                             
$kr = $size['0']/$size['1'];
                                  
$height = $width/$kr;
                                 
$format = strtolower(substr($size['mime'], strpos($size['mime'], '/')+1)); 
                                 
$icfunc = "imagecreatefrom" . $format; 
                             if (!
function_exists($icfunc)) return false; 
                                  
$x_ratio     = $width / $size[0]; 
                                  
$y_ratio     = $height / $size[1]; 
                                  
$ratio       = min($x_ratio, $y_ratio); 
                                  
$use_x_ratio = ($x_ratio == $ratio); 
                                  
$new_width   = $use_x_ratio  ? $width  : floor($size[0] * $ratio); 
                                  
$new_height  = !$use_x_ratio ? $height : floor($size[1] * $ratio); 
                                  
$new_left    = $use_x_ratio  ? 0 : floor(($width - $new_width) / 2); 
                                  
$new_top     = !$use_x_ratio ? 0 : floor(($height - $new_height) / 2); 
                                  
$isrc        = $icfunc($src); 
                                  
$idest       = imagecreatetruecolor($width, $height); 
                                   
                                  
imagefill          ($idest, 0, 0, $rgb                         ); 
                                  
imagecopyresampled ($idest, $isrc, $new_left, $new_top, 0, 0, 
                                                      
$new_width, $new_height, $size[0], $size[1]); 
                                        
                                
imagejpeg          ($idest, $dest, $quality                    ); 
                                  
imagedestroy       ($isrc                                      ); 
                                  
imagedestroy ($idest                                           ); 
                                                return 
true; 

                   } 



Сначало создаем шаблонное изображение а потом в него впихиваем(накладываем на него то что нужно) Вам соответственно создавать пустое изображение не нужно у вас оно есть(подложка как я понимаю) разберитесь. поможет

  Ответить  
 
 автор: ar41k   (24.02.2010 в 01:31)   письмо автору
 
   для: tvv123456   (24.02.2010 в 01:16)
 

спасибо, разобрался

  Ответить  
 
 автор: tvv123456   (24.02.2010 в 02:20)   письмо автору
 
   для: ar41k   (24.02.2010 в 01:31)
 

Правда в данном скрипте есть такая вещь - вашу подложку видно не будет так как я делал это под создание четких размеров и делал так что подложка полностью находиться за основной картинкой, то есть пропорции тут подогнаны 100% равные исходной картинке, но думаю и тут вы сможете разобраться

  Ответить  
 
 автор: sim5   (24.02.2010 в 07:02)   письмо автору
 
   для: ar41k   (24.02.2010 в 01:31)
 

Если вы о наложении той картинки из информера, которая фиксированного размера, то забудьте о том, что вам предложили выше. Это через чур код будет, лишний и совсем не нужный. Вам для этого (наложения) достаточно всего одной функции GD - imagecopy().

  Ответить  
 
 автор: tvv123456   (24.02.2010 в 16:53)   письмо автору
 
   для: sim5   (24.02.2010 в 07:02)
 

Мне просто показалось что автору нужно наложить уменьшенную копию

  Ответить  
 
 автор: sim5   (24.02.2010 в 17:04)   письмо автору
 
   для: tvv123456   (24.02.2010 в 16:53)
 

Да, но у него есть тема об информере, где указывается конкретный размер, то есть, надо полагать, что он фиксированный. А не зная, как это делается, он примет любой код, который ему приведут, мне так кажется. ;-)

  Ответить  
 
 автор: tvv123456   (24.02.2010 в 21:08)   письмо автору
 
   для: sim5   (24.02.2010 в 17:04)
 

Ну дак картинку и нужно подогнать под фиксированные размеры, или там уже сами картинки фиксированных размеров?

  Ответить  
 
 автор: sim5   (24.02.2010 в 21:25)   письмо автору
 
   для: tvv123456   (24.02.2010 в 21:08)
 

Судя по выводу TABLE - да.

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

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