Эксперты, как не сделать изображение водяным знаком с этим кодом? - PullRequest
0 голосов
/ 27 апреля 2020

Может кто-нибудь показать мне, как не иметь водяного знака с этой функцией? все, что я хочу, это просто изменить размер изображения без водяных знаков.

Проблема, с которой я сейчас сталкиваюсь с кодами, это сказать, что 2 из 100 загружаемых пользователями изображений, изображение кажется полностью черным

$image_path = "../css/images/logo.png";
function watermark_image_post($oldimage_name, $new_image_name){
    global $image_path;
    list($owidth,$oheight) = getimagesize($oldimage_name);
    $width = 720; $height = 450;    
    $im = imagecreatetruecolor($width, $height);
    $img_src = imagecreatefromjpeg($oldimage_name);
    imagecopyresampled($im, $img_src, 0, 0, 0, 0, $width, $height, $owidth, $oheight);
    $watermark = imagecreatefrompng($image_path);
    list($w_width, $w_height) = getimagesize($image_path);        
    $pos_x = $width - $w_width; 
    $pos_y = $height - $w_height;
    imagecopy($im, $watermark, $pos_x, $pos_y, 0, 0, $w_width, $w_height);
    imagejpeg($im, $new_image_name, 90);
    imagedestroy($im);
    unlink($oldimage_name);
    return true;
}

the html

<div class="row form-group">
                        <img id="output" class="imgoutput wdt"/>
                            <div class="col-md-12">
                            <label for="activities">Please attach your photo (250x250)</label>
                                <input type="file" name="file" id="file" accept=".jpg, .jpeg"  onChange="loadFile(event)" class="form-control" />
                            </div>

                        </div>

Вот как я обрабатываю ошибку

if($_FILES['file']['size'] == '0'){
            $error[] = 'Please attach your photo.';
        }elseif($_FILES["file"]["size"] > 2097152){
            $error[] = 'Selected image size is too large, upload under 2mb.';
        }elseif(!in_array($_FILES["file"]["type"], array("image/jpg", "image/jpeg"))){
            $error[] = 'We accept only (JPG / JPEG) image file type.';
        }

здесь часть, используемая в форме, в любом случае, чтобы изменить размер непосредственно с помощью приведенного ниже кода?

if($_FILES['file']['name']!='')
            {
                $tmp_name = $_FILES["file"]["tmp_name"];
                $namefile = $_FILES["file"]["name"];
                $cname = str_replace(' ', '-', $candidate_name);
                $ext = end(explode(".", $namefile));
                $fileUpload = move_uploaded_file($tmp_name,"uploads/images/".$image_name);
                $image_name= $cname.'-'.time().".".$ext;                
                watermark_image_post($tmp_name,"uploads/images/".$image_name);
                $img = ''.$image_name.'';
            }           

Большое спасибо

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