Поместите текстовый водяной знак в изображение JPG с помощью PHP - PullRequest
0 голосов
/ 07 декабря 2018

Я пытаюсь поместить некоторый текст в изображение с помощью php, я пытался с этим кодом

$jjj = "drag_drop/server/php/files/QBicmbmf78c4qi2kedvhlvlnn8cjn0/UWBR3105.jpg";

                        $im = imagecreatefromjpeg($jjj);
                        $estampa = imagecreatetruecolor(210, 70);
                        imagefilledrectangle($estampa, 0, 0, 210, 69, 0x0000FF);
                        imagefilledrectangle($estampa, 9, 9, 200, 60, 0xFFFFFF);                            
                        imagestring($estampa, 5, 20, 20, 'TheTexr', 0xff0000);

                        $margen_dcho = 10;
                        $margen_inf = 10;
                        $sx = imagesx($estampa);
                        $sy = imagesy($estampa);

                        imagecopymerge($im, $estampa, imagesx($im) - $sx - $margen_dcho, imagesy($im) - $sy - $margen_inf, 0, 0, imagesx($estampa), imagesy($estampa), 40);

                        imagepng($im, "drag_drop/server/php/files/QBicmbmf78c4qi2kedvhlvlnn8cjn0/");
                        imagedestroy($im);

Но в любое время у меня появляется эта ошибка:

Warning: imagecreatefromjpeg(): gd-jpeg: JPEG library reports unrecoverable error

И

Warning: imagecreatefromjpeg(): 'drag_drop/server/php/files/QBicmbmf78c4qi2kedvhlvlnn8cjn0/UWBR3105.jpg' is not a valid JPEG file

и изображения не генерируются, любая помощь?

1 Ответ

0 голосов
/ 07 декабря 2018

Это сообщение об ошибке однозначно.PHP не думает, что это JPEG.Возможно, запросить значение «mime» в массиве, возвращаемом из getimagesize()?JPEG имеет значение «изображение / JPEG».Кроме того, вызов imagepng не дает имя файла (только каталог).Когда я запускаю этот код с jpeg и именем файла в imagepng, я получаю хороший результат.

Я попробовал это с jpeg, который я создал в paint.net, и (к моему удивлению) это потерпело неудачу.getimagesize ["mime"] возвращает png.Вероятно, это была пользовательская ошибка, из-за которой mime и расширение не совпадали, но тем не менее это спровоцировало ошибку.

Итог: если php не считает, что это jpeg, он вернет ошибку.

...