У меня есть вызов AJAX с wordpress, где мне нужно добавить водяной знак к изображению и отправить его по электронной почте. Я следую этим инструкциям (и многим другим здесь, в stackoveflow), чтобы достичь желаемого результата, но безрезультатно, все, что я получаю, это маленькое черное изображение.
Вот мой код
$im = imagecreatefromjpeg("https://s3-eu-west-1.amazonaws.com/pitchprint.io/previews/" . $project_id . "_1.jpg");
$stamp = imagecreatefrompng(get_site_url() . "/wp-content/themes/porto-child/img/watermark.png");
$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));
// Output and free memory
header('Content-type: image/png');
imagepng($im);
imagedestroy($im);
пути к изображениям верны, и они нормально загружаются в браузере, но по какой-то причине я не могу заставить этот код работать, любая помощь очень ценится.






$string = "My watermark text";
$color = imagecolorallocate($image, 255, 255, 255);
$fontSize = 3;
$x = 0;
$y = 0;
imagestring($image, $fontSize, $x, $y, $string, $color);
если вы хотите вставить изображение в изображение, используйте imagecopymerge
ресурс $ изображение. вы можете использовать imagecreatefromjpeg, imagecreate, imagecreatefromgif,
Код тоже работает, я тестировал его на локальной машине.
Я думаю, что это проблема с вашими изображениями.
Редактировать: ваше изображение в облаке не JPEG, это формат изображения PNG, он просто имеет расширение jpg. Итак, просто измените этот код
$im = imagecreatefromjpeg("https://s3-eu-west-1.amazonaws.com/pitchprint.io/previews/" . $project_id . "_1.jpg");
К
$im = imagecreatefrompng("https://s3-eu-west-1.amazonaws.com/pitchprint.io/previews/" . $project_id . "_1.jpg");
Изображения работают хорошо, пути к изображениям открываются хорошо и без ошибок.
Вы проверяли код со статическим URL-адресом изображения?
Да, я сделал. Путь к изображению хорошо работает внутри тега изображения html.
Не могли бы вы показать мне значения $project_id и get_site_url() для проверки с реальными данными?
вот изображение https://s3-eu-west-1.amazonaws.com/pitchprint.io/previews/031db1e338d4aca350440b4dc164e991_1.jpg Я использую локальный маховик, поэтому мой get_site_url() возвращает мой локальный сайт разработки, который отлично загружает изображение.
Хм, вместо этого я все еще получаю черное изображение.
Убедитесь, что формат ваших изображений правильный. И оригинальное фото, и водяной знак. Используйте свой код в соответствии с форматами изображений. Расширение изображения не имеет значения. Тип файла важен, и вы должны использовать функции imagecreatefromjpeg и imagecreatefrompng в соответствии с форматом вашего изображения. Это очень очень важно. Наконец, осталось только фото с водяным знаком. Убедитесь, что это правильный формат изображения png, потому что вы использовали imagecreatefrompng. Если проблема не решается, смело обращайтесь за помощью. :-)
На что ссылается ваша переменная
$image,imagecreatefromjpeg('somepathtoimage.jpeg')?