finish hsla transformation image-filter
This commit is contained in:
parent
0aa81e75a7
commit
c184579c43
11 changed files with 511 additions and 75 deletions
|
@ -405,16 +405,13 @@ void apply_filter(Src & src, agg_stack_blur const& op)
|
||||||
}
|
}
|
||||||
|
|
||||||
template <typename Src>
|
template <typename Src>
|
||||||
void apply_filter(Src & src, hsla const& op)
|
void apply_filter(Src & src, hsla const& transform)
|
||||||
{
|
{
|
||||||
using namespace boost::gil;
|
using namespace boost::gil;
|
||||||
Tinter tint;
|
bool tinting = !transform.is_identity();
|
||||||
tint.h0 = .1;
|
bool set_alpha = !transform.is_alpha_identity();
|
||||||
tint.s0 = .3;
|
// todo - filters be able to report if they
|
||||||
tint.l1 = .9;
|
// should be run to avoid overhead of temp buffer
|
||||||
bool tinting = !tint.is_identity();
|
|
||||||
bool set_alpha = !tint.is_alpha_identity();
|
|
||||||
// todo - should filters be able to report if they should be run?
|
|
||||||
if (tinting || set_alpha)
|
if (tinting || set_alpha)
|
||||||
{
|
{
|
||||||
rgba8_view_t src_view = rgba8_view(src);
|
rgba8_view_t src_view = rgba8_view(src);
|
||||||
|
@ -423,44 +420,74 @@ void apply_filter(Src & src, hsla const& op)
|
||||||
rgba8_view_t::x_iterator src_it = src_view.row_begin(y);
|
rgba8_view_t::x_iterator src_it = src_view.row_begin(y);
|
||||||
for (int x=0; x<src_view.width(); ++x)
|
for (int x=0; x<src_view.width(); ++x)
|
||||||
{
|
{
|
||||||
|
uint8_t & r = get_color(src_it[x], red_t());
|
||||||
|
uint8_t & g = get_color(src_it[x], green_t());
|
||||||
|
uint8_t & b = get_color(src_it[x], blue_t());
|
||||||
uint8_t & a = get_color(src_it[x], alpha_t());
|
uint8_t & a = get_color(src_it[x], alpha_t());
|
||||||
uint8_t a_original = a;
|
double a2 = a/255.0;
|
||||||
if (set_alpha)
|
double a1 = a2;
|
||||||
|
if (set_alpha && a2 > 0.01)
|
||||||
{
|
{
|
||||||
double a2 = tint.a0 + (a/255.0 * (tint.a1 - tint.a0));
|
a2 = transform.a0 + (a2 * (transform.a1 - transform.a0));
|
||||||
if (a2 > 1) a2 = 1;
|
a = static_cast<unsigned>(std::floor((a2 * 255.0) +.5));
|
||||||
if (a2 < 0) a2 = 0;
|
if (a > 255) a = 255;
|
||||||
a = static_cast<unsigned>(std::floor(a2 * 255.0));
|
if (a < 0) a = 0;
|
||||||
}
|
}
|
||||||
if (a > 1 && tinting)
|
if (tinting && a2 > 0.01)
|
||||||
{
|
{
|
||||||
double h;
|
double h;
|
||||||
double s;
|
double s;
|
||||||
double l;
|
double l;
|
||||||
uint8_t & r = get_color(src_it[x], red_t());
|
|
||||||
uint8_t & g = get_color(src_it[x], green_t());
|
|
||||||
uint8_t & b = get_color(src_it[x], blue_t());
|
|
||||||
// demultiply
|
// demultiply
|
||||||
r /= a_original;
|
if (a1 <= 0.0)
|
||||||
g /= a_original;
|
{
|
||||||
b /= a_original;
|
r = g = b = 0;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
else if (a1 < 1)
|
||||||
|
{
|
||||||
|
r /= a1;
|
||||||
|
g /= a1;
|
||||||
|
b /= a1;
|
||||||
|
}
|
||||||
rgb2hsl(r,g,b,h,s,l);
|
rgb2hsl(r,g,b,h,s,l);
|
||||||
double h2 = tint.h0 + (h * (tint.h1 - tint.h0));
|
double h2 = transform.h0 + (h * (transform.h1 - transform.h0));
|
||||||
double s2 = tint.s0 + (s * (tint.s1 - tint.s0));
|
double s2 = transform.s0 + (s * (transform.s1 - transform.s0));
|
||||||
double l2 = tint.l0 + (l * (tint.l1 - tint.l0));
|
double l2 = transform.l0 + (l * (transform.l1 - transform.l0));
|
||||||
if (h2 > 1) h2 = 1;
|
if (h2 > 1) { std::clog << "h2: " << h2 << "\n"; h2 = 1; }
|
||||||
else if (h2 < 0) h2 = 0;
|
else if (h2 < 0) { std::clog << "h2: " << h2 << "\n"; h2 = 0; }
|
||||||
if (s2 > 1) s2 = 1;
|
if (s2 > 1) { std::clog << "h2: " << h2 << "\n"; s2 = 1; }
|
||||||
else if (s2 < 0) s2 = 0;
|
else if (s2 < 0) { std::clog << "s2: " << s2 << "\n"; s2 = 0; }
|
||||||
if (l2 > 1) l2 = 1;
|
if (l2 > 1) { std::clog << "h2: " << h2 << "\n"; l2 = 1; }
|
||||||
else if (l2 < 0) l2 = 0;
|
else if (l2 < 0) { std::clog << "l2: " << l2 << "\n"; l2 = 0; }
|
||||||
hsl2rgb(h2,s2,l2,r,g,b);
|
hsl2rgb(h2,s2,l2,r,g,b);
|
||||||
// premultiply
|
// premultiply
|
||||||
// we only work with premultiplied source,
|
// we only work with premultiplied source,
|
||||||
// thus all color values must be <= alpha
|
// thus all color values must be <= alpha
|
||||||
r *= a;
|
r *= a2;
|
||||||
g *= a;
|
g *= a2;
|
||||||
b *= a;
|
b *= a2;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// demultiply
|
||||||
|
if (a1 <= 0.0)
|
||||||
|
{
|
||||||
|
r = g = b = 0;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
else if (a1 < 1)
|
||||||
|
{
|
||||||
|
r /= a1;
|
||||||
|
g /= a1;
|
||||||
|
b /= a1;
|
||||||
|
}
|
||||||
|
// premultiply
|
||||||
|
// we only work with premultiplied source,
|
||||||
|
// thus all color values must be <= alpha
|
||||||
|
r *= a2;
|
||||||
|
g *= a2;
|
||||||
|
b *= a2;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -56,13 +56,46 @@ struct agg_stack_blur
|
||||||
|
|
||||||
struct hsla
|
struct hsla
|
||||||
{
|
{
|
||||||
hsla(double h0, double h1,
|
hsla(double _h0, double _h1,
|
||||||
double s0, double s1,
|
double _s0, double _s1,
|
||||||
double l0, double l1,
|
double _l0, double _l1,
|
||||||
double a0, double a1)
|
double _a0, double _a1) :
|
||||||
{
|
h0(_h0),
|
||||||
// TODO: implement me!
|
h1(_h1),
|
||||||
|
s0(_s0),
|
||||||
|
s1(_s1),
|
||||||
|
l0(_l0),
|
||||||
|
l1(_l1),
|
||||||
|
a0(_a0),
|
||||||
|
a1(_a1) {}
|
||||||
|
inline bool is_identity() const {
|
||||||
|
return (h0 == 0 &&
|
||||||
|
h1 == 1 &&
|
||||||
|
s0 == 0 &&
|
||||||
|
s1 == 1 &&
|
||||||
|
l0 == 0 &&
|
||||||
|
l1 == 1);
|
||||||
}
|
}
|
||||||
|
inline bool is_alpha_identity() const {
|
||||||
|
return (a0 == 0 &&
|
||||||
|
a1 == 1);
|
||||||
|
}
|
||||||
|
std::string to_string() const {
|
||||||
|
std::ostringstream s;
|
||||||
|
s << h0 << "x" << h1 << ";"
|
||||||
|
<< s0 << "x" << s1 << ";"
|
||||||
|
<< l0 << "x" << l1 << ";"
|
||||||
|
<< a0 << "x" << a1;
|
||||||
|
return s.str();
|
||||||
|
}
|
||||||
|
double h0;
|
||||||
|
double h1;
|
||||||
|
double s0;
|
||||||
|
double s1;
|
||||||
|
double l0;
|
||||||
|
double l1;
|
||||||
|
double a0;
|
||||||
|
double a1;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct colorize_alpha
|
struct colorize_alpha
|
||||||
|
@ -106,7 +139,10 @@ inline std::ostream& operator<< (std::ostream& os, agg_stack_blur const& filter)
|
||||||
|
|
||||||
inline std::ostream& operator<< (std::ostream& os, hsla const& filter)
|
inline std::ostream& operator<< (std::ostream& os, hsla const& filter)
|
||||||
{
|
{
|
||||||
os << "hsla(" << "TODO" << ')';
|
os << "hsla(" << filter.h0 << 'x' << filter.h1 << ':'
|
||||||
|
<< filter.s0 << 'x' << filter.s1 << ':'
|
||||||
|
<< filter.l0 << 'x' << filter.l1 << ':'
|
||||||
|
<< filter.a0 << 'x' << filter.a1 << ')';
|
||||||
return os;
|
return os;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -27,41 +27,6 @@
|
||||||
|
|
||||||
namespace mapnik {
|
namespace mapnik {
|
||||||
|
|
||||||
struct Tinter {
|
|
||||||
double h0;
|
|
||||||
double h1;
|
|
||||||
double s0;
|
|
||||||
double s1;
|
|
||||||
double l0;
|
|
||||||
double l1;
|
|
||||||
double a0;
|
|
||||||
double a1;
|
|
||||||
|
|
||||||
Tinter() :
|
|
||||||
h0(0),
|
|
||||||
h1(1),
|
|
||||||
s0(0),
|
|
||||||
s1(1),
|
|
||||||
l0(0),
|
|
||||||
l1(1),
|
|
||||||
a0(0),
|
|
||||||
a1(1) { }
|
|
||||||
|
|
||||||
bool is_identity() {
|
|
||||||
return (h0 == 0 &&
|
|
||||||
h1 == 1 &&
|
|
||||||
s0 == 0 &&
|
|
||||||
s1 == 1 &&
|
|
||||||
l0 == 0 &&
|
|
||||||
l1 == 1);
|
|
||||||
}
|
|
||||||
|
|
||||||
bool is_alpha_identity() {
|
|
||||||
return (a0 == 0 &&
|
|
||||||
a1 == 1);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
static inline void rgb2hsl(unsigned char red, unsigned char green, unsigned char blue,
|
static inline void rgb2hsl(unsigned char red, unsigned char green, unsigned char blue,
|
||||||
double & h, double & s, double & l) {
|
double & h, double & s, double & l) {
|
||||||
double r = red/255.0;
|
double r = red/255.0;
|
||||||
|
|
|
@ -0,0 +1,73 @@
|
||||||
|
{
|
||||||
|
"keys": [
|
||||||
|
"",
|
||||||
|
"1"
|
||||||
|
],
|
||||||
|
"data": {},
|
||||||
|
"grid": [
|
||||||
|
" !!!!!!!! ",
|
||||||
|
" !!!!!!!!!!!!!!!!! ",
|
||||||
|
" !!!!!!!!!!!!!!!!!!!!!!! ",
|
||||||
|
" !!!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
|
||||||
|
" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
|
||||||
|
" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
|
||||||
|
" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
|
||||||
|
" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
|
||||||
|
" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
|
||||||
|
" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
|
||||||
|
" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
|
||||||
|
" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
|
||||||
|
" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
|
||||||
|
" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
|
||||||
|
" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
|
||||||
|
" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
|
||||||
|
" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
|
||||||
|
" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
|
||||||
|
" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
|
||||||
|
" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
|
||||||
|
" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
|
||||||
|
" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
|
||||||
|
" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
|
||||||
|
" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
|
||||||
|
" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
|
||||||
|
" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
|
||||||
|
" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
|
||||||
|
" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
|
||||||
|
" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
|
||||||
|
" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
|
||||||
|
"!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!",
|
||||||
|
"!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!",
|
||||||
|
"!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!",
|
||||||
|
"!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!",
|
||||||
|
"!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!",
|
||||||
|
" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
|
||||||
|
" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
|
||||||
|
" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
|
||||||
|
" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
|
||||||
|
" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
|
||||||
|
" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
|
||||||
|
" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
|
||||||
|
" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
|
||||||
|
" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
|
||||||
|
" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
|
||||||
|
" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
|
||||||
|
" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
|
||||||
|
" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
|
||||||
|
" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
|
||||||
|
" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
|
||||||
|
" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
|
||||||
|
" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
|
||||||
|
" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
|
||||||
|
" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
|
||||||
|
" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
|
||||||
|
" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
|
||||||
|
" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
|
||||||
|
" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
|
||||||
|
" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
|
||||||
|
" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
|
||||||
|
" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
|
||||||
|
" !!!!!!!!!!!!!!!!!!!!!!!!!!! ",
|
||||||
|
" !!!!!!!!!!!!!!!!!!!!!!! ",
|
||||||
|
" !!!!!!!!!!!!!!!! "
|
||||||
|
]
|
||||||
|
}
|
|
@ -0,0 +1,159 @@
|
||||||
|
{
|
||||||
|
"keys": [
|
||||||
|
"",
|
||||||
|
"1"
|
||||||
|
],
|
||||||
|
"data": {},
|
||||||
|
"grid": [
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" !!!!!!!! ",
|
||||||
|
" !!!!!!!!!!!!!!!!!! ",
|
||||||
|
" !!!!!!!!!!!!!!!!!!!!!!! ",
|
||||||
|
" !!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
|
||||||
|
" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
|
||||||
|
" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
|
||||||
|
" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
|
||||||
|
" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
|
||||||
|
" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
|
||||||
|
" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
|
||||||
|
" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
|
||||||
|
" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
|
||||||
|
" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
|
||||||
|
" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
|
||||||
|
" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
|
||||||
|
" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
|
||||||
|
" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
|
||||||
|
" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
|
||||||
|
" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
|
||||||
|
" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
|
||||||
|
" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
|
||||||
|
" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
|
||||||
|
" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
|
||||||
|
" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
|
||||||
|
" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
|
||||||
|
" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
|
||||||
|
" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
|
||||||
|
" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
|
||||||
|
" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
|
||||||
|
" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
|
||||||
|
" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
|
||||||
|
" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
|
||||||
|
" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
|
||||||
|
" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
|
||||||
|
" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
|
||||||
|
" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
|
||||||
|
" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
|
||||||
|
" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
|
||||||
|
" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
|
||||||
|
" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
|
||||||
|
" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
|
||||||
|
" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
|
||||||
|
" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
|
||||||
|
" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
|
||||||
|
" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
|
||||||
|
" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
|
||||||
|
" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
|
||||||
|
" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
|
||||||
|
" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
|
||||||
|
" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
|
||||||
|
" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
|
||||||
|
" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
|
||||||
|
" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
|
||||||
|
" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
|
||||||
|
" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
|
||||||
|
" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
|
||||||
|
" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
|
||||||
|
" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
|
||||||
|
" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
|
||||||
|
" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
|
||||||
|
" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
|
||||||
|
" !!!!!!!!!!!!!!!!!!!!!!!!!!! ",
|
||||||
|
" !!!!!!!!!!!!!!!!!!!!!!! ",
|
||||||
|
" !!!!!!!!!!!!!!!! ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" "
|
||||||
|
]
|
||||||
|
}
|
|
@ -0,0 +1,109 @@
|
||||||
|
{
|
||||||
|
"keys": [
|
||||||
|
"",
|
||||||
|
"1"
|
||||||
|
],
|
||||||
|
"data": {},
|
||||||
|
"grid": [
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" !!!!!!!! ",
|
||||||
|
" !!!!!!!!!!!!!!!!!! ",
|
||||||
|
" !!!!!!!!!!!!!!!!!!!!!!! ",
|
||||||
|
" !!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
|
||||||
|
" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
|
||||||
|
" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
|
||||||
|
" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
|
||||||
|
" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
|
||||||
|
" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
|
||||||
|
" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
|
||||||
|
" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
|
||||||
|
" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
|
||||||
|
" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
|
||||||
|
" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
|
||||||
|
" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
|
||||||
|
" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
|
||||||
|
" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
|
||||||
|
" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
|
||||||
|
" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
|
||||||
|
" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
|
||||||
|
" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
|
||||||
|
" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
|
||||||
|
" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
|
||||||
|
" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
|
||||||
|
" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
|
||||||
|
" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
|
||||||
|
" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
|
||||||
|
" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
|
||||||
|
" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
|
||||||
|
" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
|
||||||
|
" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
|
||||||
|
" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
|
||||||
|
" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
|
||||||
|
" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
|
||||||
|
" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
|
||||||
|
" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
|
||||||
|
" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
|
||||||
|
" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
|
||||||
|
" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
|
||||||
|
" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
|
||||||
|
" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
|
||||||
|
" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
|
||||||
|
" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
|
||||||
|
" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
|
||||||
|
" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
|
||||||
|
" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
|
||||||
|
" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
|
||||||
|
" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
|
||||||
|
" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
|
||||||
|
" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
|
||||||
|
" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
|
||||||
|
" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
|
||||||
|
" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
|
||||||
|
" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
|
||||||
|
" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
|
||||||
|
" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
|
||||||
|
" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
|
||||||
|
" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
|
||||||
|
" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
|
||||||
|
" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
|
||||||
|
" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
|
||||||
|
" !!!!!!!!!!!!!!!!!!!!!!!!!!! ",
|
||||||
|
" !!!!!!!!!!!!!!!!!!!!!!! ",
|
||||||
|
" !!!!!!!!!!!!!!!! ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" "
|
||||||
|
]
|
||||||
|
}
|
Binary file not shown.
After Width: | Height: | Size: 38 KiB |
Binary file not shown.
After Width: | Height: | Size: 67 KiB |
Binary file not shown.
After Width: | Height: | Size: 59 KiB |
|
@ -0,0 +1,66 @@
|
||||||
|
<Map srs="+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs" background-image="../../data/images/checker.jpg">
|
||||||
|
|
||||||
|
<Style name="ellipse" image-filters="hsla(0x.5;.5x1;0x.5;0x1)">
|
||||||
|
<Rule>
|
||||||
|
<MarkersSymbolizer
|
||||||
|
width="240"
|
||||||
|
height="240"
|
||||||
|
fill="steelblue"
|
||||||
|
fill-opacity=".7"
|
||||||
|
stroke="yellow"
|
||||||
|
stroke-width="16"
|
||||||
|
stroke-opacity=".3"
|
||||||
|
/>
|
||||||
|
<MarkersSymbolizer
|
||||||
|
width="100"
|
||||||
|
opacity=".5"
|
||||||
|
fill="darkorange"
|
||||||
|
comp-op="multiply"
|
||||||
|
transform="skewX(50)"
|
||||||
|
allow-overlap="true"
|
||||||
|
/>
|
||||||
|
<MarkersSymbolizer
|
||||||
|
width="100"
|
||||||
|
opacity=".5"
|
||||||
|
fill="darkred"
|
||||||
|
comp-op="color-burn"
|
||||||
|
transform="skewX(-50)"
|
||||||
|
allow-overlap="true"
|
||||||
|
/>
|
||||||
|
</Rule>
|
||||||
|
</Style>
|
||||||
|
|
||||||
|
<Layer name="layer" srs="+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs">
|
||||||
|
<StyleName>ellipse</StyleName>
|
||||||
|
<Datasource>
|
||||||
|
<Parameter name="type">csv</Parameter>
|
||||||
|
<Parameter name="inline">
|
||||||
|
x,y
|
||||||
|
2.5,2.5
|
||||||
|
</Parameter>
|
||||||
|
</Datasource>
|
||||||
|
</Layer>
|
||||||
|
|
||||||
|
<!-- points to frame data view -->
|
||||||
|
|
||||||
|
<Style name="frame">
|
||||||
|
<Rule>
|
||||||
|
<PointSymbolizer />
|
||||||
|
</Rule>
|
||||||
|
</Style>
|
||||||
|
|
||||||
|
<Layer name="frame" srs="+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs">
|
||||||
|
<StyleName>frame</StyleName>
|
||||||
|
<Datasource>
|
||||||
|
<Parameter name="type">csv</Parameter>
|
||||||
|
<Parameter name="inline">
|
||||||
|
x,y
|
||||||
|
0,0
|
||||||
|
5,0
|
||||||
|
0,5
|
||||||
|
5,5
|
||||||
|
</Parameter>
|
||||||
|
</Datasource>
|
||||||
|
</Layer>
|
||||||
|
|
||||||
|
</Map>
|
|
@ -45,6 +45,7 @@ files = [
|
||||||
{'name': "marker-on-line-spacing-eq-width-overlap", 'sizes':[(600,400)]},
|
{'name': "marker-on-line-spacing-eq-width-overlap", 'sizes':[(600,400)]},
|
||||||
{'name': "marker_line_placement_on_points"},
|
{'name': "marker_line_placement_on_points"},
|
||||||
{'name': "marker-with-background-image", 'sizes':[(600,400),(400,600),(257,256)]},
|
{'name': "marker-with-background-image", 'sizes':[(600,400),(400,600),(257,256)]},
|
||||||
|
{'name': "marker-with-background-image-and-hsla-transform", 'sizes':[(600,400),(400,600),(257,256)]},
|
||||||
{'name': "whole-centroid", 'sizes':[(600,400)],
|
{'name': "whole-centroid", 'sizes':[(600,400)],
|
||||||
'bbox': mapnik.Box2d(736908, 4390316, 2060771, 5942346)},
|
'bbox': mapnik.Box2d(736908, 4390316, 2060771, 5942346)},
|
||||||
{'name': "simple-E", 'bbox':mapnik.Box2d(-0.05, -0.01, 0.95, 0.01)},
|
{'name': "simple-E", 'bbox':mapnik.Box2d(-0.05, -0.01, 0.95, 0.01)},
|
||||||
|
|
Loading…
Reference in a new issue