Вот мой текущий код:
define('IMG_WIDTH', (isset ($_GET['width'])) ? (int) $_GET['width'] : 99); define('IMG_HEIGHT', (isset ($_GET['height'])) ? (int) $_GET['height'] : 75); $image = imagecreatefromjpeg($_GET['image']); $origWidth = imagesx($image); $origHeight = imagesy($image); $croppedThumb = imagecreatetruecolor(IMG_WIDTH, IMG_HEIGHT); if ($origWidth > $origHeight) { $leftOffset = ($origWidth - $origHeight) / 2; imagecopyresampled($croppedThumb, $image, 0, 0, $leftOffset, 0, IMG_WIDTH, IMG_HEIGHT, $origHeight, $origHeight); } else { $topOffset = ($origHeight - $origWidth) / 2; imagecopyresampled($croppedThumb, $image, 0, 0, 0, $topOffset, IMG_WIDTH, IMG_HEIGHT, $origWidth, $origWidth); }
Он в основном принимает изображение и изменяет его размеры для создания миниатюры. Он работает очень хорошо. Теперь я хотел бы добавить водяной знак в правый нижний угол. Я видел функцию imagecopymerge
используемую для этого … Однако, похоже, это не позволяет мне перепрограммировать изображение как источник.
Как я могу взять уже измененное изображение и добавить водяной знак? : /
Я думал о сохранении изображения в / tmp, а затем отключить () его, как только я добавил водяной знак, но это кажется немного беспорядочным …
Вы можете использовать $croppedThumb
в качестве первого аргумента для imagecopymerge
. Вам не нужно сначала сохранять изображение.