2015-03-06 2 views
0

Я использую функцию php, которая создает водяной знак в правом верхнем углу изображения.Водяной знак с центрированием вместо верхнего правого

Вот код:

<?php 
function watermarking($source, $watermark, $save = NULL, $width = null, $height = null) { 
    $watermark = @imagecreatefrompng($watermark) 
     or exit("Impossible d'ouvrir le fichier (watermark)."); 

    imageAlphaBlending($watermark, false); 
    imageSaveAlpha($watermark, true); 

    $imageString = @file_get_contents($source) 
     or exit("Impossible d'ouvrir le fichier (image)."); 
    $image = @imagecreatefromstring($imageString) 
     or exit("Format de fichier (image) inconnu."); 

    $imageWidth = imageSX($image); 
    $imageHeight = imageSY($image); 

    if (!($width)) { 
     $watermarkWidth = imageSX($watermark); 
    } else { 
     $watermarkWidth = $width; 
    } 

    if (!($height)) { 
     $watermarkHeight = imageSY($watermark); 
    } else { 
     $watermarkHeight = $height; 
    } 

    $coordinateX = ($imageWidth - 15) - ($watermarkWidth); 
    $coordinateY = ($imageHeight - 15) - ($watermarkHeight); 

    imagecopy($image, $watermark, $coordinateX, $coordinateY, 0, 0, $watermarkWidth, $watermarkHeight); 

    if (!($save)) { 
     header('Content-Type: image/jpeg'); 
    } 

    imagejpeg ($image, $save, 100); 

    imagedestroy($image); 
    imagedestroy($watermark); 

    if (!($save)) { 
     exit; 
    } 
} 
?> 

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

Как это сделать?

Благодаря

ответ

0

Update координатные переменные как таковые

$coordinateX = ($imageWidth - $watermarkWidth)/2; 
$coordinateY = ($imageHeight - $watermarkHeight)/2; 
+0

Спасибо! Хорошего дня. – O21977