Участник
Покинул форум
Сообщений всего: 1459
Дата рег-ции: Авг. 2008
Откуда: Крым
Помог: 11 раз(а)
|
Просили меня написать класс, чтоб можно было на картинку прикреплять логотип, решил выложить исходник тут.
Можно указать параметр где именно накладывать логотип, доступны все 4 угла, указывать их через параметр coordinate по часовой стрелке, начало отсчета левый верхний угол: 1-верхний, левый, 2-правый, верхний, 3-нижний, правый...
PHP:
скопировать код в буфер обмена
<?PHP class cms_setlogo_img { public $coordinate=4; // 1-верхний, левый, 2-правый, верхний, 3-нижний, правый... function coordinat($srcWidth, $srcHeight, $logoWidth, $logoHeight){ if($this->coordinate==1){ $this->coord[1]=0; $this->coord[2]=0; } elseif($this->coordinate==2){ $this->coord[1]=$srcWidth - $logoWidth; $this->coord[2]=0; } elseif($this->coordinate==3){ $this->coord[1]=$srcWidth - $logoWidth; $this->coord[2]=$srcHeight - $logoHeight; } else { $this->coord[1]=0; $this->coord[2]=$srcHeight - $logoHeight; } } function load($filename) { $this->image_type=$image_info[2]; if($this->image_type == IMAGETYPE_JPEG ) { } elseif($this->image_type == IMAGETYPE_GIF ) { } elseif($this->image_type == IMAGETYPE_PNG ) { } } function save($img,$srcImage) { if($this->image_type == IMAGETYPE_JPEG ) { } elseif($this->image_type == IMAGETYPE_GIF ) { } elseif($this->image_type == IMAGETYPE_PNG ) { } } function setlogo($img,$logosrc) { $srcImage = $this->load($img); $logoImage = $this->load($logosrc); $this->coordinat($srcWidth, $srcHeight, $logoWidth, $logoHeight); imagecopy($srcImage, $logoImage, $this->coord[1 ], $this->coord[2 ],0 ,0 , $logoWidth, $logoHeight); $this->save($img,$srcImage); } }
Использование:
PHP:
скопировать код в буфер обмена
$imglogo=new cms_setlogo_img; $imglogo->coordinate=3; // в каком углу вставлять изображение $imglogo->setlogo("img.jpg","logo.png");
Отредактировано модератором: JustUserR, 06 Февраля, 2011 - 16:56:58 Осуществлен перенос данной темы в разделе Пользовательские функции PHP по причине включения готового решения представленного в форме ООП-библиотеки
|