ТОП-10 популярных



Для работы с вещественными числами в MySQL предусмотрено три типа данных - это типы FLOAT, DOUBLE, DECIMAL. Числовой тип FLOAT...

НОУТБУК с блестящим экраном
Eсли выпустившая ноутбук фирма предлагает его в качестве «замены настольному ПК», то это должно подразумевать под собой нечто большее, чем...

БОЛЬШЕ БОЛЬШИХ LCD-мониторов
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...

Больше больших LCD-мониторов
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...

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

Иди и пиши. TravelMate C100
Планшетный компьютер платформы Tablet PC обязан в первую очередь быть легким, способным достаточно долго работать без подзарядки батарей. Эти требования...

ПОД ЛИТЕРОЙ «N»
Aтаку LCD-мониторов не остановить, а масштабы этого наступления даже немного пугают. Судите сами — многие пользователи только начинают приглядываться к новому для...


Для длинных строк, т.е. строк длиннее 255 символов, в MySQL предусмотрены типы BLOB (Binary Large Object, большой двоичный объект) и...

Размер объему не помеха.
С тех пор как компания Fujitsu отказалась от производства жестких дисков для настольных компьютеров, многие пользователи начали забывать о том,...


Какую только информацию мы не помещаем на компакт-диски: резервные копии важных данных, музыку, фильмы... Многие полагают, что главное - «купить...

PHP. Обработка изображений и графики. Часть Шестая.


27-02-2015

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, за исключением того, что сначала она преобразует исходное изображение в черно-белое. При этом в полученном изображении сохраняется информация об оттенках.

Понравился материал? Поделитесь с друзьями!



<< Предыдущая статьяСледующая статья >>
PHP. Обработка изображений и графики. Часть Пятая. PHP. Обработка изображений и графики. Часть Седьмая.