Как установить координаты X и Y в манипуляции изображения.

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

<!DOCTYPE html>
<html>
<head>
<title>test</title>
</head>
<body>
<?php
if(isset($_POST['submit']))
{
// Give the Complete Path of the folder where you want to save the image
$folder="uploads/";
move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], "$folder".$_FILES["fileToUpload"]["name"]);
$file='uploads/'.$_FILES["fileToUpload"]["name"];

$uploadimage=$folder.$_FILES["fileToUpload"]["name"];
$newname=$_FILES["fileToUpload"]["name"];

// Set the thumbnail name
$thumbnail = $folder.$newname."_thumbnail.jpg";
$actual = $folder.$newname.".jpg";
$imgname=$newname."_thumbnail.jpg";

// Load the mian image
$source = imagecreatefromjpeg($uploadimage);

// load the image you want to you want to be watermarked
$watermark = imagecreatefrompng('uploads/logo1.png');

// get the width and height of the watermark image
$water_width = imagesx($watermark);
$water_height = imagesy($watermark);

// get the width and height of the main image image
$main_width = imagesx($source);
$main_height = imagesy($source);

// Set the dimension of the area you want to place your watermark we use 0
// from x-axis and 0 from y-axis
$dime_x = 0;
$dime_y = 0;

// copy both the images
imagecopy($source, $watermark, $dime_x, $dime_y, 0, 0, $water_width, $water_height);

// Final processing Creating The Image
imagejpeg($source, $thumbnail, 100);
}
?>
<img src='uploads/<?php echo $imgname;?>'>
</body>
</html>

и мой HTML-код также работает нормально. Но проблема с сгенерированным изображением это так
введите описание изображения здесь

текст с ‘JACLIN ADMIN’ — это мое изображение в формате png, и я хочу применить его посередине сверху и слева. Я просто поставил 0 для обоих, но проблема в том, как я могу поставить его в середине динамически, когда размер изображений с различной высотой и шириной? Пожалуйста, помогите мне.

0

Решение

Во-первых, вам нужно найти среднюю точку вашего изображения:

$im_middle_w = $main_width/2;
$im_middle_h = $main_height/2;

Тогда вам просто нужно добавить водяной знак туда, но вам нужно переместить водяной знак влево наполовину (чтобы он был по центру):

$dime_x = $im_middle_w - $water_width/2;
$dime_y = $im_middle_h - $water_height/2;

Не проверял, но это должно работать. Если это не сработает, не стесняйтесь связывать изображения, и я сам посмотрю на код.

2

Другие решения

Первое установленное значение:

$ watermark_pos_x = (imagesx ($ image) / 2) — (imagesx ($ watermark) / 2) — 15; $ watermark_pos_y = (imagesy ($ image) / 2) — (imagesy ($ watermark) / 2) — 10;

Затем после применения значения к функции:

// объединяем исходное изображение и водяной знак

imagecopy ($ image, $ watermark, $ watermark_pos_x, $ watermark_pos_y, 0, 0, imagesx ($ watermark), imagesy ($ watermark));

0

По вопросам рекламы [email protected]