PHP GD изображение с 2 файлами - PullRequest
1 голос
/ 06 марта 2011

Вот что я пытаюсь сделать.Имейте в виду, что я довольно новичок в GD2

Я хочу создать изображение из 2 изображений таким образом;

Фоновый прямоугольник, заполненный изображениями № 1

После этогоЯ хочу нарисовать polygon поверх него, заполненного другим изображением.

Сейчас у меня есть прямоугольник и изображение на заднем плане.

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

Вот мой код

$values = array(
            40,  50,  // Point 1 (x, y)
            20,  240, // Point 2 (x, y)
            60,  60,  // Point 3 (x, y)
            240, 20,  // Point 4 (x, y)
            50,  40,  // Point 5 (x, y)
            10,  10   // Point 6 (x, y)
        );

$image2 = imagecreatefromjpeg('test2.jpg');
$image = imagecreatefromjpeg('test.jpg');

$bg   = imagecreatefromjpeg('test.jpg');

$fill = imagecolorallocate($image, 0, 0, 255);

// fill the background
imagefilledrectangle($image, 0, 0, 249, 249, $bg);

// draw a polygon
imagefilledpolygon($image, $values, 6, $fill);

// flush image
header('Content-type: image/jpg');
imagepng($image);
imagedestroy($image);

, как вы можете видеть imagepng() сделать только $image как это сделатья получаю его, чтобы сделать $ image и $ image2

Спасибо всем

Ответы [ 2 ]

6 голосов
/ 06 марта 2011

Вам нужно наложить второе изображение поверх первого.

$file1 = 'test.jpg';
$file2 = 'test2.jpg';

// First image
$image = imagecreatefromjpeg($file1);

// Second image (the overlay)
$overlay = imagecreatefromjpeg($file2);

// We need to know the width and height of the overlay
list($width, $height, $type, $attr) = getimagesize($file2);

// Apply the overlay
imagecopy($image, $overlay, 0, 0, 0, 0, $width, $height);
imagedestroy($overlay);

// Output the results
header('Content-type: image/png');
imagepng($image);
imagedestroy($image);
0 голосов
/ 06 марта 2011

Я предлагаю вам отключить imagealphablending для Image2, нарисуйте инверсию вашего многоугольника на Image2 цветом с альфа-значением: 0. Включите imagealphablending.И затем вы можете скопировать Image2 поверх Image1 (фон).

...