Объедините 2 png-24 прозрачных изображения с помощью Php - PullRequest
0 голосов
/ 23 декабря 2010

Здравствуйте, я пытаюсь объединить два прозрачных изображения png-24, оба размера 400width, 150height.

Фон: ["http://www.fenixflame.net/Background-Zanaris-24.png"][1]

И изображение, которое я хочу наложить на Adobe Background: [ "http://www.fenixflame.net/Bandos-Slayer-24.png"][2]

Я пробовал накладывать прозрачные изображения, используя php, но только изображения png-8. Не могу использовать png-8, потому что изображения просто не отображаются правильно.

Редактировать: код, который я пробовал:

    $image = imagecreatefrompng("http://www.fenixflame.net/Background-Zanaris-24.png");  
$frame = imagecreatefrompng("http://www.fenixflame.net/Bandos-Slayer-24.png");
//
//imagealphablending($frame,true);
//
 $insert_x = imagesx($frame); 
  $insert_y = imagesy($frame); 
  imagecopymerge($image,$frame,0,0,0,0,$insert_x,$insert_y,100); 
//
//# Save the image to a file imagepng($image, '/path/to/save/image.png');
 imagepng($image, "/home1/fenixfla/public_html/Images/Signatures/NewImageBG.png");
//
//# Output straight to the browser.
 imagepng($image); 
//

Ответы [ 4 ]

8 голосов
/ 25 марта 2012

Я написал небольшой пример для объединения двух прозрачных изображений в этой ссылке scitam.com

попробуйте этот код, он отлично работает.


    $width = 200;
    $height = 200;

    $base_image = imagecreatefromjpeg("base.jpg");
    $top_image = imagecreatefrompng("top.png");
    $merged_image = "merged.png";

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

    imagecopy($base_image, $top_image, 0, 0, 0, 0, $width, $height);
    imagepng($base_image, $merged_image);

2 голосов
/ 23 декабря 2010

Используйте библиотеку GD для рендеринга изображения и вывода его в php.http://www.php.net/manual/en/ref.image.php

Это становится довольно волосатым после этого.Вы должны начать делать что-то вроде

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

и т. Д., Чтобы убедиться, что прозрачность верна.

вы можете увидеть пример того, что я сделал для клиента, когда он был на заднем планестраница здесь .Это было супер нудно и очень больно.Веселись

2 голосов
/ 23 декабря 2010

Как насчет использования компоновки lib ImageMagick (http://www.imagemagick.org/script/composite.php)

   function composite() {
      $command = "/usr/local/bin/composite [... your properties...]";
      exec($command, $output, $result);
      return ($result == 0 && $output[0] == "");
   }
1 голос
/ 23 декабря 2010

Вы можете проверить это: http://php.net/manual/en/function.imagecopymerge.php

Функция imagecopymerge является частью библиотеки PHP GD.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...