source: subversion/applications/rendering/mapnik/mkshield.pl @ 6704

Last change on this file since 6704 was 5871, checked in by tomhughes, 13 years ago

Update tertiary shields to match latest change to font colour.

  • Property svn:executable set to *
File size: 3.2 KB
Line 
1#!/usr/bin/perl
2
3use strict;
4use warnings;
5
6use GD;
7
8mkshield("motorway_shield1", 17, 17, 128, 155, 192);
9mkshield("motorway_shield2", 24, 17, 128, 155, 192);
10mkshield("motorway_shield3", 31, 17, 128, 155, 192);
11mkshield("motorway_shield4", 38, 17, 128, 155, 192);
12
13mkshield("trunk_shield1", 17, 17, 127, 201, 127);
14mkshield("trunk_shield2", 24, 17, 127, 201, 127);
15mkshield("trunk_shield3", 31, 17, 127, 201, 127);
16mkshield("trunk_shield4", 38, 17, 127, 201, 127);
17mkshield("trunk_shield5", 45, 17, 127, 201, 127);
18
19mkshield("primary_shield1", 17, 17, 228, 109, 113);
20mkshield("primary_shield2", 24, 17, 228, 109, 113);
21mkshield("primary_shield3", 31, 17, 228, 109, 113);
22mkshield("primary_shield4", 38, 17, 228, 109, 113);
23mkshield("primary_shield5", 45, 17, 228, 109, 113);
24
25mkshield("secondary_shield1", 17, 17, 253, 191, 111);
26mkshield("secondary_shield2", 24, 17, 253, 191, 111);
27mkshield("secondary_shield3", 31, 17, 253, 191, 111);
28mkshield("secondary_shield4", 38, 17, 253, 191, 111);
29mkshield("secondary_shield5", 45, 17, 253, 191, 111);
30
31mkshield("tertiary_shield1", 17, 17, 153, 153, 153);
32mkshield("tertiary_shield2", 24, 17, 153, 153, 153);
33mkshield("tertiary_shield3", 31, 17, 153, 153, 153);
34mkshield("tertiary_shield4", 38, 17, 153, 153, 153);
35mkshield("tertiary_shield5", 45, 17, 153, 153, 153);
36
37exit 0;
38
39sub mkshield
40{
41    my $name = shift;
42    my $width = shift;
43    my $height = shift;
44    my $r = shift;
45    my $g = shift;
46    my $b = shift;
47
48    my $shield = GD::Image->new($width, $height, 1);
49
50    $shield->alphaBlending(0);
51    $shield->saveAlpha(1);
52
53    my $white = $shield->colorAllocate(255, 255, 255);
54    my $border1 = $shield->colorAllocate($r, $g, $b);
55    my $border2 = $shield->colorAllocateAlpha(round($r * 1.2578), round($g * 1.1677), round($b * 1.0833), 8);
56    my $border3 = $shield->colorAllocateAlpha(round($r * 1.2031), round($g * 1.1290), round($b * 1.0677), 21);
57    my $border4 = $shield->colorAllocateAlpha($r, $g, $b, 43);
58    my $border5 = $shield->colorAllocateAlpha(round($r * 1.0391), round($g * 1.0258), round($b * 1.0104), 8);
59
60    $shield->filledRectangle(2, 2, $width - 3, $height - 3, $white);
61
62    $shield->line(0, 1, 0, $height - 2, $border1);
63    $shield->line($width - 1, 1, $width - 1, $height - 2, $border1);
64    $shield->line(1, 0, $width - 2, 0, $border1);
65    $shield->line(1, $height - 1, $width - 2, $height - 1, $border1);
66
67    $shield->line(1, 2, 1, $height - 3, $border2);
68    $shield->line($width - 2, 2, $width - 2, $height - 3, $border2);
69
70    $shield->line(2, 1, $width - 3, 1, $border3);
71    $shield->line(2, $height - 2, $width - 3, $height - 2, $border3);
72
73    $shield->setPixel(0, 0, $border4);
74    $shield->setPixel(0, $height - 1, $border4);
75    $shield->setPixel($width - 1, $height - 1, $border4);
76    $shield->setPixel($width - 1, 0, $border4);
77
78    $shield->setPixel(1, 1, $border5);
79    $shield->setPixel(1, $height - 2, $border5);
80    $shield->setPixel($width - 2, $height - 2, $border5);
81    $shield->setPixel($width - 2, 1, $border5);
82
83    open(SHIELD, "> ${name}.png") || die "Can't open ${name}.png: $!";
84    binmode(SHIELD);
85    print SHIELD $shield->png;
86    close(SHIELD);
87
88    return;
89}
90
91sub round
92{
93    my $n = shift;
94    my $r = sprintf("%.0f", $n);
95
96    $r = 255 if $r > 255;
97
98    return $r;
99}
Note: See TracBrowser for help on using the repository browser.