FazBrowse GitHub Viewer
|
Trending
|
URL:
|
Home
Tools:
[Download Repo ZIP]
[View Raw Code]
[Original HTTPS Page]
Image/ImageColor.php at master · styleflasher/Image · GitHub
styleflasher
/
Image
Public
forked from
Gregwar/Image
Notifications
You must be signed in to change notification settings
Fork
0
Star
0
Code
Pull requests
0
Actions
Projects
Security and quality
0
Insights
Additional navigation options
Code
Pull requests
Actions
Projects
Security and quality
Insights
Expand file tree
Breadcrumbs
Image
/
ImageColor.php
Copy path
More file actions
More file actions
Latest commit
History
History
History
98 lines (82 loc) · 2.69 KB
Breadcrumbs
Image
/
ImageColor.php
Copy path
File metadata and controls
98 lines (82 loc) · 2.69 KB
Raw
Copy raw file
Download raw file
Open symbols panel
Edit and raw actions
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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
<?php
namespace
Gregwar
\
Image
;
/**
* Color manipulation class.
*/
class
ImageColor
{
private
static
$
colors
=
array
(
'
black
'
=>
0x000000
,
'
silver
'
=>
0xc0c0c0
,
'
gray
'
=>
0x808080
,
'
teal
'
=>
0x008080
,
'
aqua
'
=>
0x00ffff
,
'
blue
'
=>
0x0000ff
,
'
navy
'
=>
0x000080
,
'
green
'
=>
0x008000
,
'
lime
'
=>
0x00ff00
,
'
white
'
=>
0xffffff
,
'
fuschia
'
=>
0xff00ff
,
'
purple
'
=>
0x800080
,
'
olive
'
=>
0x808000
,
'
yellow
'
=>
0xffff00
,
'
orange
'
=>
0xffA500
,
'
red
'
=>
0xff0000
,
'
maroon
'
=>
0x800000
,
'
transparent
'
=>
0x7fffffff
,
);
public
static
function
gdAllocate
(
$
image
,
$
color
)
{
$
colorRGBA
=
self
::
parse
(
$
color
);
$
b
= (
$
colorRGBA
) &
0xff
;
$
colorRGBA
>>=
8
;
$
g
= (
$
colorRGBA
) &
0xff
;
$
colorRGBA
>>=
8
;
$
r
= (
$
colorRGBA
) &
0xff
;
$
colorRGBA
>>=
8
;
$
a
= (
$
colorRGBA
) &
0xff
;
$
c
=
imagecolorallocatealpha
(
$
image
,
$
r
,
$
g
,
$
b
,
$
a
);
if
(
$
color
==
'
transparent
'
) {
imagecolortransparent
(
$
image
,
$
c
);
}
return
$
c
;
}
public
static
function
parse
(
$
color
)
{
// Direct color representation (ex: 0xff0000)
if
(!
is_string
(
$
color
) &&
is_numeric
(
$
color
)) {
return
$
color
;
}
// Color name (ex: "red")
if
(
isset
(
self
::
$
colors
[
$
color
])) {
return
self
::
$
colors
[
$
color
];
}
if
(
is_string
(
$
color
)) {
$
color_string
=
str_replace
(
'
'
,
''
,
$
color
);
// Color string (ex: "ff0000", "#ff0000" or "0xfff")
if
(
preg_match
(
'
/^(#|0x|)([0-9a-f]{3,6})/i
'
,
$
color_string
,
$
matches
)) {
$
col
=
$
matches
[
2
];
if
(
strlen
(
$
col
) ==
6
) {
return
hexdec
(
$
col
);
}
if
(
strlen
(
$
col
) ==
3
) {
$
r
=
''
;
for
(
$
i
=
0
;
$
i
<
3
; ++
$
i
) {
$
r
.=
$
col
[
$
i
].
$
col
[
$
i
];
}
return
hexdec
(
$
r
);
}
}
// Colors like "rgb(255, 0, 0)"
if
(
preg_match
(
'
/^rgb\(([0-9]+),([0-9]+),([0-9]+)\)/i
'
,
$
color_string
,
$
matches
)) {
$
r
=
$
matches
[
1
];
$
g
=
$
matches
[
2
];
$
b
=
$
matches
[
3
];
if
(
$
r
>=
0
&&
$
r
<=
0xff
&&
$
g
>=
0
&&
$
g
<=
0xff
&&
$
b
>=
0
&&
$
b
<=
0xff
) {
return
(
$
r
<<
16
) | (
$
g
<<
8
) | (
$
b
);
}
}
}
throw
new
\
InvalidArgumentException
(
'
Invalid color:
'
.
$
color
);
}
}
Back
|
FazBrowse Home
|
New Git URL