Загрузка Jpeg не выполняется с помощью этой функции - PullRequest
0 голосов
/ 02 августа 2020

Итак, эта функция работает почти идеально, но с jpeg она не работает, с jpg работает нормально, я думаю, потому что бит расширения файла я не уверен.

Кто-нибудь может увидеть, где я ошибся? Я также думаю получить расширение файла, прочитав обратное до точки, чтобы убедиться, что в файле нет других точек. Некоторые идеи по этому поводу будут приветствоваться.

function watermark($OriginalFileUpload,$DestinationWaterMarkedFile) 
{

$OutPutFile = $DestinationWaterMarkedFile;
$imagesource = $OriginalFileUpload;

$File_Extention = explode(".", $imagesource); // this will fail if some file has two dots
$File_Extention = end($File_Extention);
$File_Extention = strtolower($File_Extention);
 
if($File_Extention == ".gif") $New_Image = @imagecreatefromgif($imagesource); 
if($File_Extention == ".jpg") $New_Image = @imagecreatefromjpeg($imagesource); 
if($File_Extention == ".png") $New_Image = @imagecreatefrompng($imagesource); 
if($File_Extention == ".jpeg") $New_Image = @imagecreatefromjpeg($imagesource); 


$watermark = imagecreatefrompng('Logo.png');

$wm_x = imagesx($watermark);
$wm_y = imagesy($watermark);
$img_x = imagesx($New_Image);
$img_y = imagesy($New_Image);

$wm_scale = 6; // 2 = 1/2

$wm_w = $img_x/$wm_scale;
$wm_aspect = $wm_y/$wm_x;
$wm_h = (int) ($wm_aspect * $wm_w);

$margin_scale = 6; // 2 = 1/2
$margen_right = $wm_w/$margin_scale;
$margen_bottom = $wm_h/$margin_scale;

$dst_x = $img_x - $wm_w - $margen_right;
$dst_y = $img_y - $wm_h - $margen_bottom;

imagecopyresized ($New_Image, $watermark, $dst_x, $dst_y, 0, 0, $wm_w, $wm_h, $wm_x, $wm_y);

imagejpeg($New_Image,$OutPutFile,100,NULL); // writes the watermarked file to the Marked folder

imagedestroy($New_Image);

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...