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

Форум PHP

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

 

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

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

тема: склеять 10 картинок
 
 автор: moonfox   (15.05.2011 в 00:10)   письмо автору
 
 

Здравствуйте,
есть 10 png, которые нужно склеить
скажите пожалуйста каков будет примерный алгоритм этого процесса?
насколько я понимаю сразу 10 штук за один проход не склеишь....
склеивая по 2 нужно определять существует ли предыдущая промежуточная картинка...
как это дело проверять?

спасибо.

  Ответить  
 
 автор: deimand   (15.05.2011 в 04:48)   письмо автору
 
   для: moonfox   (15.05.2011 в 00:10)
 

Я не понял вопроса.

  Ответить  
 
 автор: cheops   (15.05.2011 в 11:25)   письмо автору
 
   для: moonfox   (15.05.2011 в 00:10)
 

А склеять как? По вертикали, по горизонтали?
>насколько я понимаю сразу 10 штук за один проход не склеишь....
В общем почему бы и нет, можно вычислить общую ширину/высоту всех изображений, создать изображение подложку такой ширины/высоты и копировать на неё изображения со смещением, соответствующих номеру слеиваемого изображения.

  Ответить  
 
 автор: SHAman   (15.05.2011 в 12:06)   письмо автору
 
   для: moonfox   (15.05.2011 в 00:10)
 

Определяетесь как они должны быть расположены в итоге. Допустим, у нас 10 картинок шириной 200 пикселей и высотой 150. Я хочу сделать из них одну. Пять в ряд, два ряда.

Создаю изображение шириной 1000 и высотой 300 пикселей. Это мое "поле", куда буду "вклеивать" картинки.

По очереди читаю картинки (по номерам или как вам надо). В зависимости от номера текущей картинки определяю координаты ее положения на моем "поле". Это совсем просто. Если это, скажем, четвертая картинка, то ряд у нее первый (y=0) а положение по горизонтали будет 200*3=600. Это левый верхний угол.

Вклеиваю и иду за следующей. Сохраняю результат.

  Ответить  
 
 автор: moonfox   (15.05.2011 в 17:29)   письмо автору
 
   для: SHAman   (15.05.2011 в 12:06)
 

это 10 картинок одинакового размера, с прозрачностью.
надо склеить одно с другом, поверх.

  Ответить  
 
 автор: bab-nike   (16.05.2011 в 02:10)   письмо автору
 
   для: moonfox   (15.05.2011 в 17:29)
 

попробуйте через css, точнее через z-index.

  Ответить  
 
 автор: SHAman   (16.05.2011 в 12:42)   письмо автору
 
   для: moonfox   (15.05.2011 в 17:29)
 

Если я все правильно понимаю, то достаточно их "вклеить" на одну позицию с сохранением прозрачности.

  Ответить  
 
 автор: moonfox   (16.05.2011 в 19:57)   письмо автору
 
   для: SHAman   (16.05.2011 в 12:42)
 

меня интересует нужен ли промежуточный файл..
то есть склеили 1.png и 2.png получили 1_2.png
затем берем этот файл и клеим с 3.png - получаем снова промежуточный файл и так далее...
но тогда надо проверять на существование промежуточных файлов...
или можно брать данные из переменной не сохраняя в файл пока не дойдем до 10 картинки.

  Ответить  
 
 автор: bab-nike   (16.05.2011 в 20:32)   письмо автору
 
   для: moonfox   (16.05.2011 в 19:57)
 

не то что клеить, да и клеить не надо, просто считайте что вы ставите все фотки друг на друга, как слои в фотошопе, и пропускаемость прозрачности определяет исход видимости конечного объекта.

  Ответить  
 
 автор: bab-nike   (16.05.2011 в 20:28)   письмо автору
 
   для: SHAman   (16.05.2011 в 12:42)
 

ну да, думаю проще ни как не сделать, другое дело будет ли удовлетворять требованиям автора, но по тому что именно он хочет -это как раз то что надо:)

  Ответить  
 
 автор: moonfox   (16.05.2011 в 23:13)   письмо автору
 
   для: bab-nike   (16.05.2011 в 20:28)
 

$strap = imagecreatefrompng("image_1.png");
$w = imagesx($strap);
$h = imagesy($strap);

imagealphablending($strap,true);
imagesavealpha($strap, true);


$buckle = imagecreatefrompng("image_2.png");

imagealphablending($buckle,false);
imagesavealpha($buckle, true);

$crease = imagecreatefrompng("image_3.png");

imagealphablending($crease,false);
imagesavealpha($crease, true);

imagecopy($strap,$buckle,0,0,0,0,$w,$h);
imagecopy($strap,$crease,0,0,0,0,$w,$h);

imagepng($strap, 'lol.png');

imagedestroy($strap);
imagedestroy($buckle);

а ставить их одну за одну... не подходит )))

  Ответить  
 
 автор: bab-nike   (17.05.2011 в 14:46)   письмо автору
 
   для: moonfox   (16.05.2011 в 23:13)
 

z-index надо применять с помощю css
Вам сюда, там и пример и результат, в DIV можно ставить не только текст, но и картинку, полученый вами.
http://htmlbook.ru/css/z-index

  Ответить  
 
 автор: moonfox   (17.05.2011 в 15:21)   письмо автору
 
   для: bab-nike   (17.05.2011 в 14:46)
 

я знаю)
мне не подходит это)
спасибо

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

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