[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Наложение картинок
ensik
Здравствуйте, гуру PHP. Уже второй день долбусь вопросом наложения картинки на картинку. Пробовал функции imagecopy, imagecopymerge, imagecopresample - работают отлично, но они мне не подходят.
Причины следующие:
1) При наложении большой картинки на маленькую, оно разтягивает картинку, а не обрезает.
2) Нельзя налаживать картинку на миносовые координаты.

Эти две вещи очень нужны. Может уже есть готовые решения, или кто имел дело с этим.
Заранее спасибо за помощь!

Для большего понимания кину ссылку: http://tsm-agency.com/pb/

Это ооочень сырая версия конструктора визиток. Выберите фон по шаблону и потаскайте его. Как же мне разставлять картинки по координатам?
Каждую картинку crop ить при выхождении за рамки - тоже не выход, проще же ведь в минуса загнать. С Текстом - проще, он за рамки не выходит.

Что на это скажете?
Игорь_Vasinsky
полным полно же готовых решений

function watermark($img_file, $filetype, $watermark, $pos = 3, $offset = 5) {
$image = getimagesize($img_file);
$xImg = $image[0];
$yImg = $image[1];
switch ($image[2]) {
case 1:
$img = imagecreatefromgif($img_file);
break;
case 2:
$img = imagecreatefromjpeg($img_file);
break;
case 3:
$img = imagecreatefrompng($img_file);
break;
}

$r = imagecreatefrompng($watermark);
$x = imagesx($r);
$y = imagesy($r);

switch ($pos) {
case 1: //up-left
$xDest = $offset;
$yDest = $offset;
break;
case 2: //up-right
$xDest = $xImg - ($x + $offset);
$yDest = $offset;
break;
case 3: //down-right
$xDest = $xImg - ($x + $offset);
$yDest = $yImg - ($y + $offset);
break;
case 4: //down-left
$xDest = $offset;
$yDest = $yImg - ($y + $offset);
break;

}
imagealphablending($img, 1);
imagealphablending($r, 1);
imagesavealpha($img, 1);
imagesavealpha($r, 1);
imagecopyresampled($img, $r, $xDest, $yDest, 0, 0, $x, $y, $x, $y);
switch ($filetype) {
case "jpg":
imagejpeg($img, $img_file, 100);
break;
case "gif":
imagegif($img, $img_file);
break;
case "png":
imagepng($img, $img_file);
break;
}
imagedestroy($r);
imagedestroy($img);
}


используем

watermark('myimage.jpg', 'jpg', 'mywater.png', 3, 15)


https://www.google.ru/webhp?sourceid=chrome...6&bih=659&ion=1

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.