¿Cómo fusionar dos imágenes y guardar en php?

Estoy creando una aplicación en php en la que cargo una imagen, la cambio de tamaño y la coloco en una taza de café. La taza de café es una imagen de fondo de un div. Ahora quiero guardar ambas imágenes como una sola imagen, se vería como una captura de pantalla de una taza de café con la imagen impresa en ella. Cómo tomar una captura de pantalla solo de la taza y la imagen o si hay otra forma de hacerlo en php.

preguntado el 12 de junio de 12 a las 12:06

2 Respuestas

Necesitas una biblioteca de imágenes para eso. La mayoría de las versiones de PHP en muchos servidores están precompiladas con GD. Esta es una biblioteca limitada y con un rendimiento no tan bueno, por lo que la mayoría de la gente usará ImageMagick.

En GD:

$mug = imagecreatefrompng('mug.jpg');
$overlay = imagecreatefromjpeg('photo.png');

imagecopy($mug, $overlay);

En Imagemagick:

$mug = new Imagick("mug.jpg");
$overlay = new Imagick("logo.png");
$composition = new Imagick();

$composition->compositeImage($mug);
$composition->compositeImage($overlay);

Respondido el 16 de enero de 14 a las 16:01

Puede hacer esto usando la biblioteca GD2:

<?php

  $image = imagecreatefromstring(file_get_contents($image_path);
  $coffe_mug= imagecreatefromstring(file_get_contents($coffe_mug_path));

  // merge the two
  imagecopymerge($image, $coffe_mug, 10, 10, 0, 0, 100, 47, 75);

  // save, can also be imagepng, imagegif, etc, etc
  imagejpeg($image, '/path/to/save/image.png');

  ?>

También puede enviar la imagen al navegador; para obtener más información, consulte: http://php.net/manual/es/function.imagecopymerge.php.

Respondido 20 Feb 17, 20:02

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.