Intereting Posts
Загрузка файла для csv работает на локальном хосте, но не в режиме реального времени Выполнить java-класс в PHP Как написать хорошую вставку базы данных PHP, используя ассоциативный массив как добавить проверку на несвязанное поле формы в symfony2 создать шестнадцатеричный заголовок сервера имен Почему PHP не заменяет переменную в строке? Сгенерировать изображение из html с помощью php Добавление пользовательского обратного вызова к проверке формы Codeigniter как вставлять видео в код laravel Предупреждение: preg_match () : Неизвестный модификатор '-' подключение веб-сервисов PHP с Android Как получить весь ключ в многомерном массиве в php Метод (например, через скрипт bash), чтобы превратить индексы php-массива в настоящее время с использованием констант в индексы массивов с использованием одинарных кавычек? yii2 установить значение глобального языка Регулярные выражения для имени skype в PHP

Поместите изображение в центр другого изображения, используя PHP GD

Мне нужно поместить изображение в центр другого изображения (как по горизонтали, так и по вертикали) размером 700 * 350. Я пытаюсь использовать следующий код. Но я получаю изображение как растянутое.

@header("Content-Type: image/png"); $imageURL = "flower.jpg"; // create a transparent background image for placing the $imageURL image $imageResource = imagecreatetruecolor(700, 350); imagesavealpha($imageResource, true); $transparentColor = imagecolorallocatealpha($imageResource, 0, 0, 0, 127); imagefill($imageResource, 0, 0, $transparentColor); $backgroundImage = imagecreatefromjpeg($imageURL); list($width, $height) = getimagesize($imageURL); imagecopyresampled($imageResource, $backgroundImage, 350, 175, 0, 0, 700, 350, $width, $height); imagepng($imageResource, "newimage.jpg"); 

Это не центрирует изображение, а также файл flower.jpg удаляется, когда я запускаю этот код. Что я делаю неправильно в этом?

Может ли кто-нибудь помочь мне исправить это? Заранее спасибо.

Так вам нужно что-то вроде этого?

 @header("Content-Type: image/png"); $imageURL = "flower.jpg"; // create a transparent background image for placing the $imageURL image $imageResource = imagecreatetruecolor(700, 350); imagesavealpha($imageResource, true); $transparentColor = imagecolorallocatealpha($imageResource, 0, 0, 0, 127); imagefill($imageResource, 0, 0, $transparentColor); $backgroundImage = imagecreatefromjpeg($imageURL); list($width, $height) = getimagesize($imageURL); imagecopyresampled($imageResource, $backgroundImage, 175, 85, 0, 0, 350, 175, $width, $height); imagepng($imageResource, "newimage.jpg"); imagedestroy($imageResource); imagedestroy($backgroundImage); 

введите описание изображения здесь

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

Также вы не делали imagedestroy , что вы полностью должны.