I use this code for watermark photos with PHP uploads. If the photo is a .jpg
all is well. If .JPG
(capitalized) then this stops working:
$targetFilePath = $folderPath . $file_name;
$watermarkImg = imagecreatefrompng($watermarkImagePath);
switch($fileType){
case 'jpg':
$im = imagecreatefromjpeg($targetFilePath);
break;
case 'jpeg':
$im = imagecreatefromjpeg($targetFilePath);
break;
case 'png':
$im = imagecreatefrompng($targetFilePath);
break;
default:
$im = imagecreatefromjpeg($targetFilePath);
}
$marge_right = 1;
$marge_bottom = 1;
$sx = imagesx($watermarkImg);
$sy = imagesy($watermarkImg);
imagecopy($im, $watermarkImg, imagesx($im) - $sx - $marge_right, imagesy($im) - $sy - $marge_bottom, 0, 0, imagesx($watermarkImg), imagesy($watermarkImg));
imagejpeg($im, $targetFilePath,70);
imagedestroy($im);
I tried adding this, but it didn't help:
case 'JPG':
$im = imagecreatefromjpeg($targetFilePath);
break;
Please help.
Since strtolower does not work. Use if/else condition like this way_
if(preg_match('/[.](jpg)$/i', $file_name)) {
$im = imagecreatefromjpeg($targetFilePath);
} else if (preg_match('/[.](jpeg)$/i', $file_name)) {
$im = imagecreatefromjpeg($targetFilePath);
} else if (preg_match('/[.](png)$/i', $file_name)) {
$im = imagecreatefrompng($targetFilePath);
}
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.