Заметил, что не обсуждалась данная функция ещё на форуме, стало интересно, работал я с ней однажды, но не совсем она корректно работала (или руки криво написали, то что голова криво спроэктировала).
в общем функция imagecopyresized - знаете для чего создана а, если кто не знает, то она принемает в себя 10 параметров и на выходе дает изображение (какие параметры перечислять сейчас не стану, в мануале есть всё о них),
Надо мной повисла задача, вернее даже не задача а идея сделать то, что другими уже делалось, но мне захотелось самому, сделать динамический аватар т.е. чтоб его отображение на форуме менялось каждый раз.
Имеем :
-функцию imagecopyresized;
-2 картинки с именами 1.png и 2.png (16 х16 точек);
-картинку изображения декорируещего (128 на 128 пикселов, оно просто в конце генерации накладываеться наверх полученной матрицы)
Требуеться :
-получить картинку, в формате .png, которая на фоне будет иметь сменный масив 8 на 8 элементов, а впереди будет накладываться "слой-подпись" с именем пользователя.
Решение:
Ниже я разместил код скрипта, которым как я думал, я расщитаю всё, но, работа данного скрипта прерываеться по таймауту максимального времени выполнения скрипта.
У кого какие идеи-предложения???
<?php
function GenerateBackgrnd (){
//——————————————————————
// Создание ВСЕХ необходимых параметров
//——————————————————————
$ieW=16; $ieH=16;
$backimg = array (64);
//——– генратор случайных чисел ——————————-
mt_srand(time()+(double)microtime()*1000000);
//——————————————————————
$background = imagecreate(128,128); //Основной фон
$backgroundsrc = array(); //массив "донорских" изображений
//——————————————————————
//Формирование массива с числами 1 по 256
//——————————————————————
for ($i=0;$i<64;$i++)
{
$backgroundsrc[]=(mt_srand(1,0).'.png');
}
for ($x=0;$x<8;$x++)
{
for ($y=0;$y<8;$y++)
{
for ($count=0;$count<256;$count++)
{
// $currentsrc = imagecreate(16,16);
// imagecopyresized ( dst_img; src_img; DstX; DstY; srcX; SrcY; DstH; DstW; SrcW; SrcH; )
imagecopyresized ($backgroundimage,($backgroundsrc[$count]),($x*16), ($y*16), 0 , 0 , 16 , 16 , 16 , 16 );
}
}
return $backgroundimage;
}
// конец функции генерящей картинк
}
function ShowImage ()
{
$backgroundimage = imagecreate(128,128);
$foregroundimage = imagecreatefrompng("http://localhost/images/foreground.png");
$zero = imagecreatefrompng("http://localhost/images/1.png");
$nul = imagecreatefrompng("http://localhost/images/0.png");
//GenerateBackgrnd();
// imagecopyresized ( dst_img; src_img; DstX; DstY; srcX; SrcY; DstH; DstW; SrcW; SrcH; )
return imagecopyresized (GenerateBackgrnd(),($foregroundimage),(0), (0), 0 , 0 , 128 , 128 , 128 , 128 );
}
print ShowImage();
?>