php - создание водяного знака img

<img id='imgt' src='../img/crop00.jpg' alt='img'>
<img id='imgtest' src='../img/crop00.jpg' alt='img'>

JS

...
$.ajax({
    url: 'pro20.php',
    type: 'post',
    data: {...},
    success: function(data) {
        $('#imgtest').attr('src', data);
    }
});

PHP

error_reporting(E_ALL);
ini_set('display_errors', 1);

Библиотека GD включена - проверено с помощью print_r(gd_info());

pro20.php

Я пытаюсь запустить этот код

$stamp = imagecreatefrompng('img/wmark.png');
$im = imagecreatefromjpeg('img/test.jpg');

$marge_right = 10;
$marge_bottom = 10;
$sx = imagesx($stamp);
$sy = imagesy($stamp);

imagecopy($im, $stamp, imagesx($im) - $sx - $marge_right, imagesy($im) - $sy - $marge_bottom, 0, 0, imagesx($stamp), imagesy($stamp));

header('Content-type: image/png');
imagepng($im);
imagedestroy($im);

echo imagepng($im);  // my added line 28

Результат:
- #imgtest пусто,
- в файловой системе нет нигде нового созданного img
- журнал ошибок:

[:error] [pid 2736:tid 1580] [client ::1:59185] PHP Warning: imagepng(): supplied resource is not a valid Image resource in ... pro20.php on line 28,

1 ответ

В коде нет ничего плохого. Вероятно, проблема в том, что одно (или оба изображения) загружаются неправильно:

$stamp = imagecreatefrompng('img/wmark.png');
$im = imagecreatefromjpeg('img/test.jpg');

Проверь это img/wmark.png а также img/test.jpg существуют и являются действительными изображениями.

Я проверил ваш код (с небольшим изменением):

<?php

$stamp = imagecreatefrompng('wmark.png');
$im = imagecreatefromjpeg('img.jpg');

$marge_right = 10;
$marge_bottom = 10;
$sx = imagesx($stamp);
$sy = imagesy($stamp);

imagecopy($im, $stamp, imagesx($im) - $sx - $marge_right, imagesy($im) - $sy - $marge_bottom, 0, 0, imagesx($stamp), imagesy($stamp));

header('Content-type: image/png');
imagepng($im);
imagedestroy($im);

echo imagepng($im);

И я получил это:

Ничего плохого в вашем коде. Вероятная проблема заключается в том, что ваши изображения могут быть недействительными изображениями в формате png / jpg. Пожалуйста, подтвердите это.

Другие вопросы по тегам