Обработка и вывод изображений с использованием GD в php

Я хочу управлять отображением изображений с помощью библиотеки PHP GD. Я собираюсь добавить текст в нижний угол его на лету, когда браузер запрашивает изображение, вместо того, чтобы сохранять текст в изображение.

Я знаю, что могу это сделать: установите тип MIME в заголовок, а затем вызовите imagepng(...) с именем файла, чтобы просто отобразить изображение в браузере, но как мне встроить его в документ? Подобно,

 <img src='somefile.php?i=1' ... /> 

я просто вызываю imagepng с именем файла, но не устанавливая заголовки?

Кроме того, если кто-то копирует источник изображения из исходного кода и переходит к нему в браузере … что произойдет, если заголовки не будут установлены? Будет ли изображение отображаться так, как если бы было запрошено фактическое изображение?

Если вы создаете изображение на somefile.php когда пользователь пытается получить доступ к этому URL-адресу, то выход браузера будет отображаться, если они не указали переменную, которая содержит идентификатор / имя самого изображения.

Чтобы использовать изображение на html, я просто делаю <img src='somefile.php?f=FILENAME' /> чтобы сделать его более читаемым (если у вас есть соответствующие имена изображений).

Обязательно обрабатывайте не определенный доступ к somefile.php путем перенаправления или отображения изображения по умолчанию.

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

 #somefile.php header('content-type: image/jpeg'); $watermark = imagecreatefrompng('watermark.png'); $watermark_width = imagesx($watermark); $watermark_height = imagesy($watermark); $image = imagecreatetruecolor($watermark_width, $watermark_height); $image = imagecreatefromjpeg($_GET['src']); //Path to the image file $size = getimagesize($_GET['src']); $dest_x = $size[0] - $watermark_width - 5; $dest_y = $size[1] - $watermark_height - 5; imagecopymerge($image, $watermark, $dest_x, $dest_y, 0, 0, $watermark_width, $watermark_height, 100); imagejpeg($image); imagedestroy($image); imagedestroy($watermark); 

Поэтому для вывода изображения с этим кодом на вашу страницу html вы должны сделать следующее:

 <img src='somefile.php?src=filePath' /> 

Примечание. Если вы не хотите, чтобы jpg просто изменил его на png.

Дополнительная документация о GD + PHP доступна здесь .