Intereting Posts
Последствия вставки положительного поиска в произвольное регулярное выражение для имитации смещения байтов Я хочу, чтобы мой поиск показывал только результаты с соответствующими значениями полей. Как это делается? PHP Regex для имен людей Symfony DomCrawler: найдите элемент с определенным значением атрибута Почему меняет числовое значение с помощью number_format ()? Маршрутизация в codeigniter не работает с неанглийскими символами PHP кодировки json_encode в виде строк Как исправить код состояния сервера: 302 Найден SQL Inject Me Firefox Addon Блокирование спама комментариев без использования captcha Отображение документов с Google Диска на веб-странице Кто-нибудь, у кого проблемы с диаграммами Google в XAMPP? Добавить новую строку в файл excel с использованием библиотеки phpExcel Как я могу заставить Apache поддерживать подключение PHP 5.3.6 к Sybase ASE 15.7? Отображать время / дату в определенном часовом поясе с помощью функции date () Мыло PHP – невозможно импортировать схему

Измените размер изображения и заполните пробелы пропорций цветом

Я загружаю логотипы в свою систему, и их нужно исправить в поле размером 60×60 пикселей. У меня есть весь код для его пропорционального изменения, и это не проблема.

Мое изображение 454x292px становится 60×38. Дело в том, что мне нужно, чтобы изображение было 60х60, а это означает, что я хочу накладывать верхнюю и нижнюю белые на каждый (я могу заполнить прямоугольник цветом).

Теория заключается в том, что я создаю белый прямоугольник, 60×60, затем копирую изображение и изменяю его размер до 60×38 и помещаю его в свой белый прямоугольник, начиная с вершины 11px (что добавляет до 22px общей прокладки, которая мне нужна.

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

Кто-нибудь знает, как это сделать, или вы можете указать мне на код / ​​учебник, который делает это?

С GD:

$newWidth = 60; $newHeight = 60; $img = getimagesize($filename); $width = $img[0]; $height = $img[1]; $old = imagecreatefromjpeg($filename); // change according to your source type $new = imagecreatetruecolor($newWidth, $newHeight) $white = imagecolorallocate($new, 255, 255, 255); imagefill($new, 0, 0, $white); if (($width / $height) >= ($newWidth / $newHeight)) { // by width $nw = $newWidth; $nh = $height * ($newWidth / $width); $nx = 0; $ny = round(fabs($newHeight - $nh) / 2); } else { // by height $nw = $width * ($newHeight / $height); $nh = $newHeight; $nx = round(fabs($newWidth - $nw) / 2); $ny = 0; } imagecopyresized($new, $old, $nx, $ny, 0, 0, $nw, $nh, $width, $height); // do something with new: like imagepng($new, ...); imagedestroy($new); imagedestroy($old); 

http://php.net/manual/en/function.imagecopyresampled.php

Это в основном функция, которую вы хотите скопировать и изменить ее плавно.

http://www.php.net/manual/en/function.imagecreatetruecolor.php

С этим вы создаете новое черное изображение.

http://www.php.net/manual/en/function.imagefill.php

В этой части объясняется, как заполнить его белым.

Остальное следует.