imagemagick — Добавление двух изображений Переполнение стека

Мне нужно это:
введите описание изображения здесь

Я делаю это:

$top_file = 'image1.png';
$bottom_file = 'image2.png';

$top = imagecreatefrompng($top_file);
$bottom = imagecreatefrompng($bottom_file);

// get current width/height
list($top_width, $top_height) = getimagesize($top_file);
list($bottom_width, $bottom_height) = getimagesize($bottom_file);

// compute new width/height
$new_width = ($top_width > $bottom_width) ? $top_width : $bottom_width;
$new_height = $top_height + $bottom_height;

// create new image and merge
$new = imagecreate($new_width, $new_height);
imagecopy($new, $top, 0, 0, 0, 0, $top_width, $top_height);
imagecopy($new, $bottom, 0, $top_height+1, 0, 0, $bottom_width, $bottom_height);

// save to file
imagepng($new, 'merged_image.png');

.. но объединенное изображение не имеет обоих изображений. PHP сообщает об этом:

Warning: imagecreatefrompng(): '/Users/myusername/Work/www/projectname/staticimage.jpg' is not a valid PNG file in /Users/myusername/Work/www/projectname/imageWatermark.php on line 60

Warning: imagecopy() expects parameter 2 to be resource, boolean given in /Users/myusername/Work/www/projectname/imageWatermark.php on line 74

1

Решение

Как сказано / решено в комментариях и предупреждениях, отображаемых после использования вами отчетов об ошибках:

Оба файла должны быть .png где вы используете .jpg,

imagecreatefrompng (): ‘/Users/myusername/Work/www/projectname/staticimage.jpg’

Вы не можете смешивать оба разных формата файлов / изображений, не при использовании imagecreatefrompng() с .jpg файл, который есть.

Примечание: Просто переименование .jpg в .png не будет работать, так как это приведет к повреждению файла (для начинающих) и все равно будет выдано предупреждение, так же, как быстрый FYI. Это должен быть фактический формат изображения PNG.

Тем не мение, Вы можете сделать: (если вы хотите использовать оба формата файлов из разных файлов), потребуется использовать две разные функции с их соответствующими форматами изображений.

$top_file = 'image1.png';
$bottom_file = 'image2.jpg';

$top = imagecreatefrompng($top_file);
$bottom = imagecreatefromjpeg($bottom_file);

добавлять Отчет об ошибках в начало вашего файла (ов), который поможет найти ошибки.

<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);

// rest of your code

Примечание: Отчеты об ошибках должны выполняться только на стадии подготовки, а не на производстве.

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]