resource imagecolortransparent(resource image, integer color)
Функция imagecolortransparent (листинг 16.11) устанавливает заданный цвет как прозрачный. Значение для аргумента color возвращается функцией imagecolorallocate. Изображение должно отображаться в режиме палитры. Для выборки прозрачного цвета можно вызвать эту функцию без второго аргумента.
Листинг 16.11. Функция imagecolortransparent
<?php
// создать красный квадрат $image = imagecreate(200,200);
$colorRed = imagecolorallocate($image, 255, 0, 0);
$colorBlue = imagecolorallocate($image, 0, 0, 255);
imagefill($image, 0, 0, $colorRed);
// начертить синий квадрат меньшего размера
imagefilledrectangle($image, 30, 30, 70, 70, $colorBlue);
// сделать синий цвет прозрачным
imagecolortransparent($image, $colorBlue);
// отправить полученное изображение
header("Content-type: image/png");
imagepng($image);
?>
boolean imagecopy(resource destination, resource source, integer destination_x, integer destination_y, integer source_x, integer source_y, integer src_width, integer src_height)
Функция imagecopy (листинг 16.12) копирует часть исходного изображения в целевое изображение (рис. 16.5). Эта функция не учитывает прозрачности, если исходное изображение представлено в режиме реалистичного цветовоспроизведения, поэтому в данном случае следует использовать imagecopymerge.
Листинг 16.12. Функция imagecopy
<?php
$picture = "leonatkinson.png";
//создать желтый прямоугольник на 20 пикселей больше рисунка $size = getimagesize($picture);
$image = imagecreatetruecolor($size[0] + 20, $size[1] + 20); $colorYellow = imagecolorallocate($image, 255, 255, 128); imagefill($image, 0, 0, $colorYellow);
// попытка открыть изображение с подавлением сообщений об ошибках if(!($image2 = @imagecreatefrompng($picture)))
{
//возникла ошибка, поэтому выход с предварительным созданием ошибочного изображения
$image = imagecreate(200,200);
$colorWhite = imagecolorallocate($image, 255, 255, 255); $colorBlack = imagecolorallocate($image, 0, 0, 0); imagefill($image, 0, 0, $colorWhite);
imagestring($image, 4, 10, 10, "Couldn't load image!",
$colorBlack); header("Content-type: image/png"); imagepng($image); exit();
}
//заключить рисунок в желтый прямоугольник
imagecopy($image, $image2, 10, 10, 0, 0, $size[0], $size[1]);
// отправить полученное изображение header("Content-type: image/png"); imagepng($image);
?>
boolean imagecopymerge(resource destination, resource source, integer destination_x, integer destination_y, integer source_x, integer source_y, integer src_width, integer src_height, integer opacity)
Функция imagecopymerge (листинг 16.13) копирует одно изображение в другое и позволяет во время копирования задавать непрозрачность изображения (рис. 16.6). Непрозрачность задается в диапазоне от 0, когда скопированное изображение не отображается, до 100, когда дублируется функциональность функции imagecopy. Эта функция обрабатывает прозрачность как реалистичных изображений, так и изображений в режиме палитры. Если необходимо наложить одно изображение с прозрачными пикселями на другое, не смешивая их при этом, воспользуйтесь этой функцией, установив для аргумента opacity значение, равное 100.
Листинг 16.13. Функция imagecopymerge
<?php
$picture = "leonatkinson.png";
//создать желтый прямоугольник на 20 пикселей больше рисунка $size = getimagesize($picture);
$image = imagecreatetruecolor($size[0] + 20, $size[1] + 20); $colorYellow = imagecolorallocate($image, 255, 255, 128); imagefill($image, 0, 0, $colorYellow);
// попытка открыть изображение с подавлением сообщений об ошибках if(!($image2 = @imagecreatefrompng($picture)))
{
//возникла ошибка, поэтому выход с предварительным //созданием ошибочного изображения $image = imagecreate(200,200);
$colorWhite = imagecolorallocate($image, 255, 255, 255); $colorBlack = imagecolorallocate($image, 0, 0, 0); imagefill($image, 0, 0, $colorWhite);
imagestring($image, 4, 10, 10, "Couldn't load image!",
$colorBlack); header("Content-type: image/png"); imagepng($image); exit();
}
//заключить рисунок в желтый прямоугольник с прозрачностью 50% imagecopymerge($image, $image2, 10, 10, 0, 0, $size[0],
$size[1], 50);
// отправить полученное изображение header("Content-type: image/png"); imagepng($image);
boolean imagecopymergegray(resource destination, resource source, integer destination_x, integer destination_y, integer source_x, integer source_y, integer src_width, integer src_height, integer opacity)
Функция imagecopymergegray аналогична функции imagecopymerge, за исключением того, что сначала она преобразует исходное изображение в черно-белое. При этом в полученном изображении сохраняется информация об оттенках.
ТОП-10 популярных
Для работы с вещественными числами в MySQL предусмотрено три типа данных - это типы FLOAT, DOUBLE, DECIMAL. Числовой тип FLOAT...
БОЛЬШЕ БОЛЬШИХ LCD-мониторов
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...
Больше больших LCD-мониторов
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...
НОУТБУК с блестящим экраном
Eсли выпустившая ноутбук фирма предлагает его в качестве «замены настольному ПК», то это должно подразумевать под собой нечто большее, чем...
Eсли выпустившая ноутбук фирма предлагает его в качестве «замены настольному ПК», то это должно подразумевать под собой нечто большее, чем...
Иди и пиши. TravelMate C100
Планшетный компьютер платформы Tablet PC обязан в первую очередь быть легким, способным достаточно долго работать без подзарядки батарей. Эти требования...
Планшетный компьютер платформы Tablet PC обязан в первую очередь быть легким, способным достаточно долго работать без подзарядки батарей. Эти требования...
Магнито-оптический дисковод DynaMO
Cейчас, когда традиционные флоппи-дисководы на долгие годы замерли в своем развитии, поиск альтернативных носителей продолжается, и ситуация, казалось бы, разрешилась...
Cейчас, когда традиционные флоппи-дисководы на долгие годы замерли в своем развитии, поиск альтернативных носителей продолжается, и ситуация, казалось бы, разрешилась...
Компьютер для гурманов.«Эксимер ДМ»
Российская компания «Эксимер ДМ», известная как производитель настольных компьютеров, рабочих станций, серверов и ноутбуков, выступила техническим спонсором проведения торжеств, посвященных...
Российская компания «Эксимер ДМ», известная как производитель настольных компьютеров, рабочих станций, серверов и ноутбуков, выступила техническим спонсором проведения торжеств, посвященных...
Для длинных строк, т.е. строк длиннее 255 символов, в MySQL предусмотрены типы BLOB (Binary Large Object, большой двоичный объект) и...
В дополнение к календарным типам, предназначенным для хранения даты и времени отдельно, MySQL также поддерживает гибридные типы данных DATETIME и...
Вообще, к изменению настроек сервера прибегают очень редко. В MySQL программа заранее настроена так, чтобы соответствовать самым распространенным и основным...
PHP. Обработка изображений и графики. Часть Шестая.
27-02-2015
<< Предыдущая статья | Следующая статья >> |
PHP. Обработка изображений и графики. Часть Пятая. | PHP. Обработка изображений и графики. Часть Седьмая. |