使用php将文本水印放入jpg图像
我尝试用php将一些文本放到一个图像中,我已经用这段代码做了尝试使用php将文本水印放入jpg图像,php,watermark,Php,Watermark,我尝试用php将一些文本放到一个图像中,我已经用这段代码做了尝试 $jjj = "drag_drop/server/php/files/QBicmbmf78c4qi2kedvhlvlnn8cjn0/UWBR3105.jpg"; $im = imagecreatefromjpeg($jjj); $estampa = imagecreatetruecolor(210, 70);
$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
及
并且不会生成图像,有什么帮助吗?错误消息是明确的。php不认为它是jpeg。也许可以在从getimagesize返回的数组中查询mime的值?jpeg的值为image/jpeg。此外,imagepng调用不提供文件名,只提供一个目录。当我用一个jpeg和一个imagepng文件名运行这段代码时,我得到了一个很好的结果 我用我在paint.net中创建的一个jpeg进行了尝试,但出乎意料的是,它失败了。getimagesize[mime]返回png。这可能是一个用户错误,mime和扩展不匹配,但它引发了错误
底线:如果php不认为它是jpeg,它将返回一个错误。我猜这不是一个有效的jpeg文件。是的,它是一个jpeg文件。。。应该认为微软的产品没有遵守standards@JavierLarrouletpaint.net是与Microsoft paint不同的产品。说实话,很可能是我的用户错误导致了mime/扩展不匹配。我不知道。。。我只是让自己对绘画和.net都有偏见,把它们放在一起听上去是这样的:
Warning: imagecreatefromjpeg(): 'drag_drop/server/php/files/QBicmbmf78c4qi2kedvhlvlnn8cjn0/UWBR3105.jpg' is not a valid JPEG file