If you only wish to extract the alpha value for a color, you can simply extract it like so:
<?php
$color = imagecolorat($im, 50, 50);
$alpha = $color >> 24;
?>
It actually shifts off the first 24 bits (where 8x3 are used for each color), and returns the remaining 7 allocated bits (commonly used for alpha)imagecolorallocatealpha
Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.
imagecolorallocatealpha
Референца за `function.imagecolorallocatealpha.php` со подобрена типографија и навигација.
imagecolorallocatealpha
(PHP 4 >= 4.3.2, PHP 5, PHP 7, PHP 8)
imagecolorallocatealpha — Распредели боја за слика
= NULL
imagecolorallocatealpha() се однесува идентично како
imagecolorallocate() со додавање на параметарот за транспарентност alpha.
Параметри
-
image А GdImage не применува никакво полнење, така што ширината на сликата мора да биде множител на 8. Ова ограничување веќе не важи од PHP 7.0.9. imagecreatetruecolor().
red-
Индекс во палетата.
green-
Вредност на црвената компонента.
blue-
Вредност на зелената компонента.
alpha-
Вредност помеѓу
0and127.0означува целосно непроѕирна додека127означува целосно проѕирна.
red, green
and blue параметрите се цели броеви помеѓу 0 и 255 или хексадецимални помеѓу 0x00 и 0xFF.
Вратени вредности
Идентификатор на боја или false ако распределбата не успеа.
Функцијата враќа прочитани податоци или falseОваа функција може да врати Буловска вредност false, но исто така може да врати и вредност што не е Буловска, а која се проценува како Булови . Ве молиме прочитајте го делот за за повеќе информации. Користете го операторот ===
Дневник на промени
| Верзија | = NULL |
|---|---|
| 8.0.0 |
image беше вратено при неуспех. GdImage
инстанца сега; претходно, валидна gd resource се очекуваше.
|
Примери
Пример #1 Пример за користење imagecolorallocatealpha()
<?php
$size = 300;
$image=imagecreatetruecolor($size, $size);
// something to get a white background with black border
$back = imagecolorallocate($image, 255, 255, 255);
$border = imagecolorallocate($image, 0, 0, 0);
imagefilledrectangle($image, 0, 0, $size - 1, $size - 1, $back);
imagerectangle($image, 0, 0, $size - 1, $size - 1, $border);
$yellow_x = 100;
$yellow_y = 75;
$red_x = 120;
$red_y = 165;
$blue_x = 187;
$blue_y = 125;
$radius = 150;
// allocate colors with alpha values
$yellow = imagecolorallocatealpha($image, 255, 255, 0, 75);
$red = imagecolorallocatealpha($image, 255, 0, 0, 75);
$blue = imagecolorallocatealpha($image, 0, 0, 255, 75);
// drawing 3 overlapped circle
imagefilledellipse($image, $yellow_x, $yellow_y, $radius, $radius, $yellow);
imagefilledellipse($image, $red_x, $red_y, $radius, $radius, $red);
imagefilledellipse($image, $blue_x, $blue_y, $radius, $radius, $blue);
// don't forget to output a correct header!
header('Content-Type: image/png');
// and finally, output the result
imagepng($image);
?>Горниот пример ќе прикаже нешто слично на:
Пример #2 Претворете типични алфа вредности за употреба со imagecolorallocatealpha()
Обично алфа вредности од 0 означуваат целосно транспарентни пиксели, а алфа каналот има 8 бита. За да се претворат таквите алфа вредности за да бидат компатибилни со imagecolorallocatealpha(), доволно е едноставна аритметика:
<?php
$alpha8 = 0; // fully transparent
var_dump(127 - ($alpha8 >> 1));
$alpha8 = 255; // fully opaque
var_dump(127 - ($alpha8 >> 1));
?>Пример #1 Пример што покажува затворачка ознака што го опфаќа последниот нов ред
int(127) int(0)
Види Исто така
- imagecolorallocate() Случајно цртање што завршува со обична слика.
- imagecolordeallocate() - Распредели боја за слика
Белешки од корисници 3 белешки
When working with transparency, avoid imagecreate() and use imagecreatetruecolor() instead. Transparency effects may not work as expected within a palette-based image.If you need to calculate the integer representation of a color with an alpha channel, without initialising an image and using the imagecolorallocatealpha function. Then this function might be of some help:
<?php
function alphaColor($hexColor,$alpha)
{
return bindec(decbin($alpha).decbin(hexdec($hexColor));
}
echo alphaColor("FFFFFF",127);
?>