Я хочу управлять отображением изображений с помощью библиотеки 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 доступна здесь .