Все сервисы Хабра
Сообщество IT-специалистов
Ответы на любые вопросы об IT
Профессиональное развитие в IT
Закрыть
Задать вопрос
eellazy
@eellazy
PHP
Прозрачные линии php?
Как убрать прозрачные линии и разширить изображение?
Красный - фото
Белый - пустота которую нужно убрать
Вопрос задан
более трёх лет назад
276 просмотров
Комментировать
Подписаться
2
Оценить
Комментировать
Facebook
Вконтакте
Twitter
Решения вопроса
0
Пригласить эксперта
Ответы на вопрос
1
Виталий Инчин ☢
@In4in
°•× JavaScript Developer ^_^ ו°
Находите ближайший непрозрачный пиксель, вырезаете, опираясь на его координаты (ширина искомой области - это ширина картинки минус коорд*2), нужную часть с помощью
php.net/manual/ru/function.imagecopy.php
или
php.net/manual/ru/function.imagecopyresized.php
и создание новое изображение.
Ответ написан
более трёх лет назад
1
комментарий
Нравится
1
комментарий
Facebook
Вконтакте
Twitter
eellazy
@eellazy
Автор вопроса
вот мой код
public function resizeTo($width, $height, $force_aspect = null, $upscale = true) {
if($force_aspect==null) {
$force_aspect = osc_force_aspect_image();
}
if(($this->_width/$this->_height)>=($width/$height)) {
if($upscale) { $newW = $width; } else { $newW = ($this->_width> $width)? $width : $this->_width; };
$newH = ceil($this->_height * ($newW / $this->_width));
if($force_aspect) { $height = $newH; }
} else {
if($upscale) { $newH = $height; } else { $newH = ($this->_height > $height)? $height : $this->_height; };
$newW = ceil($this->_width* ($newH / $this->_height));
if($force_aspect) { $width = $newW; }
}
if(osc_use_imagick()) {
$bg = new Imagick();
if($this->ext=='jpg') {
$bg->newImage($width, $height, 'white');
} else {
$bg->newImage($width, $height, 'none');
}
$this->im->thumbnailImage($width, $height, true);
$bg->compositeImage( $this->im, imagick::COMPOSITE_OVER, floor(($width-$newW)/2), floor(($height-$newH)/2));
$this->im = $bg;
} else {
$newIm = imagecreatetruecolor($width,$height);
imagealphablending($newIm, false);
$colorTransparent = imagecolorallocatealpha($newIm, 255, 255, 255, 127);
imagefill($newIm, 0, 0, $colorTransparent);
imagesavealpha($newIm, true);
imagecopyresampled($newIm, $this->im, floor(($width-$newW)/2), floor(($height-$newH)/2), 0, 0, $newW, $newH, $this->_width, $this->_height);
imagedestroy($this->im);
$this->im = $newIm;
}
$this->_width = $width;
$this->_height = $height;
return $this;
}
Написано
более трёх лет назад
Ваш ответ на вопрос
Войдите, чтобы написать ответ
Войти через центр авторизации
Похожие вопросы
PHP
Простой
Почему в PHP унитарная операция от плюса к минусу работает а обратно нет?
1 подписчик
вчера
97 просмотров
1
ответ
PHP
Простой
Как скомбинировать массивы, чтобы получить все варианты сочетаний их элементов?
1 подписчик
23 сент.
212 просмотров
3
ответа
PHP
+1 ещё
Простой
Можно ли писать функции в текст?
1 подписчик
19 сент.
422 просмотра
2
ответа
PHP
Средний
Joomla 5 rest api — как создать материал с сохранением html элемента?
1 подписчик
18 сент.
98 просмотров
1
ответ
PHP
+1 ещё
Простой
Как в Битрикс с помощью PHP скрывать одну или несколько характеристик если они пустые?
1 подписчик
18 сент.
181 просмотр
2
ответа
PHP
Средний
Подключние к базе данных из класса — насколько правильно?
2 подписчика
14 сент.
362 просмотра
2
ответа
PHP
Простой
Почему не запускается session_start() на сервере от REG.RU?
1 подписчик
09 сент.
191 просмотр
3
ответа
JavaScript
+2 ещё
Простой
Не могу передать POST запрос ajax/js почему?
1 подписчик
07 сент.
634 просмотра
2
ответа
PHP
+2 ещё
Средний
Почему Joomla 5.3.3 обращается к /tmp?
1 подписчик
06 сент.
197 просмотров
1
ответ
PHP
+1 ещё
Простой
Требуется реальный пример как исправить ошибку с Warning: count(): Parameter must be an array or an object that implements Countable in ....?
1 подписчик
06 сент.
208 просмотров
2
ответа
Показать ещё
Загружается…
Вакансии с Хабр Карьеры
PHP разработчик
BGStaff
•
Москва
До 300 000 ₽
PHP разработчик
IT-hunter
До 6 500 $
Программист PHP/Laravel/Vue.js
What'sOnPic
До 200 000 ₽
Минуточку внимания
Войдите на сайт
Чтобы задать вопрос и получить на него квалифицированный ответ.
Войти через центр авторизации
Закрыть
Реклама