我尝试使用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
没有生成图像,有帮助吗?
答案 0 :(得分:1)
该错误消息是明确的。 php认为它不是jpeg。也许要查询getimagesize()
返回的数组中“ mime”的值? jpeg的值为“ image / jpeg”。另外,imagepng
调用不提供文件名(仅提供目录)。运行此代码时,在imagepng
中使用jpeg和文件名可以得到很好的结果。
我用在paint.net中创建的jpeg进行了尝试,但令我惊讶的是。 getimagesize [“ mime”]返回png。 MIME和扩展名不匹配可能是用户错误,但仍然引起了错误。
底线:如果php认为它不是jpeg,则会返回错误。