Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 16.12.2016
Сообщений: 93
1

Как добавить прозрачность в картинку через PHP?

24.04.2017, 21:57. Показов 759. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте!

Есть у меня вот такая функция:
Кликните здесь для просмотра всего текста
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
function makeCornersForImage($image, $radius, $background){
    // загружаем картинку
    $img = imagecreatefromjpeg($image);
    // включаем режим сопряжения цветов
    imagealphablending($img, true);
    // размер исходной картинки
    $width = imagesx($img);
    $height = imagesy($img);
    // создаем изображение для углов
    $corner = imagecreatetruecolor($radius, $radius);
    imagealphablending($corner, false);
    // прозрачный цвет
    $trans = imagecolorallocatealpha($corner, 255, 255, 255, 127);
    // заливаем картинку для углов
    imagefill($corner, 0, 0, $background);
    // рисуем прозрачный эллипс
    imagefilledellipse($corner, $radius, $radius, $radius * 2, $radius * 2, $trans);
    // массив положений. Для расположения по углам
    $positions = array(
        array(0, 0),
        array($width - $radius, 0),
        array($width - $radius, $height - $radius),
        array(0, $height - $radius),
    );
    // накладываем на углы картинки изображение с прозрачными эллипсами
    foreach ($positions as $pos) {
        imagecopyresampled($img, $corner, $pos[0], $pos[1], 0, 0, $radius, $radius, $radius, $radius);
        
        // поворачиваем картинку с эллипсов каждый раз на 90 градусов
        $corner = imagerotate($corner, 270, $background, false);
    }
    // вернем картинку
    return $img;
}


Она нужна для работы с картинкой, а точнее для заокругливания углов у картинки. Вызываю функцию так:

PHP
1
2
3
4
5
6
7
8
$radius = 90;
$imgPath = 'image.jpg';
$background = 0xffffff;
// закругляем углы
$imgCorner = makeCornersForImage($imgPath, $radius, $background);
// вывод картинки в браузер
header('Content-Type: image/png');
imagepng($imgCorner);
На выходе получаю картинку с заокругленными углами, но они не прозрачные (а нужны прозрачные). Я уже пробовал по разному, но как я понимаю, через $background напрямую альфу не задашь, а если её убрать вовсе то фон будет чёрным. Вот и не знаю уже что тут делать. Помогите если кто знает как решить эту проблемку. Заранее большое спасибо!
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.04.2017, 21:57
Ответы с готовыми решениями:

Php, js , ajax , Input file как добавить картинку в папку на сервер?
Доброго времени суток! Впервые пытаюсь работать с Input type=file , помогите разобраться как мне...

Как добавить данный в acces через php
Здрасти всем, подскажите пожалуйста как добавить данные в базу access через интерфейс php спасибо

Как добавить онлайн оплату или банковские переводы в страницу через PHP или через JavaScript
Здравствуйте ребята))) подскажите пожалуйста, как добавить онлайн оплату или банковские переводы в...

Как добавить знак <'> через php в страницу html
У меня с базы данных на html страницу выводит список, к которым применяется скрипт всплывающего...

2
Эксперт PHP
3877 / 3218 / 1350
Регистрация: 01.08.2012
Сообщений: 10,859
24.04.2017, 22:10 2
vafilkin, может проще border-radius в CSS?
0
0 / 0 / 0
Регистрация: 16.12.2016
Сообщений: 93
24.04.2017, 22:12  [ТС] 3
Проще то оно проще, но требуется сделать именно что бы на выходе была картинка с уже готовым оформлением.
0
24.04.2017, 22:12
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
24.04.2017, 22:12
Помогаю со студенческими работами здесь

Как добавить новое поле в форму через js/php?
Есть html форма с одним лишь полем ввода номера телефона, я хочу добавить туда еще и поле для ввода...

Как добавить прозрачность компоненту Panel?
Как к компоненту Panel добавить свойство ПРОЗРАЧНОСЬ?

Как изменить прозрачность фона формы через через Expresion Blend
Пытаюсь отредактировать фон в форме через Expresion Blend однако как я не пытаюсь сделать его...

Как к странице на PHP добавить через кнопку(переключатель) таблицу Jquery и возможность редактирования
К созданной странице на PHP, где уже есть таблица надо ёё переделать чтобы она была динамическая с...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru