--- WorldMap.pm.old Fri Jun 17 10:33:43 2016 +++ WorldMap.pm Wed Dec 14 12:18:17 2022 @@ -500,7 +500,7 @@ my ($wtab, $noon, $width, $height) = @_; my $illumMap = Imager->new(ysize => $height, xsize => $width); $illumMap = $illumMap->convert(preset => 'addalpha'); - my $day = Imager::Color->new(255, 255, 255, 10); + my $day_p = pack 'C4', 255, 255, 255, 10; my ($i, $j, $oh, $nl, $nh); for ($i = 0; $i < $height; $i++) { @@ -510,16 +510,13 @@ $oh = ($nh - $nl) + 1; if (($nl + $oh) > $width) { - for ($j = $nl; $j < $width; $j++) { - $illumMap->setpixel(x => $j, y => $i, color => $day); - } - for ($j = 0; $j < ((($nl + $oh) - $width) + 1); $j++) { - $illumMap->setpixel(x => $j, y => $i, color => $day); - } + $illumMap->setscanline(x => $nl, y => $i, + pixels => $day_p x ($width - $nl)); + $illumMap->setscanline(x => 0, y => $i, + pixels => $day_p x ($nl + $oh - $width + 1)); } else { - for ($j = $nl; $j < (($nl + $oh) + 1); $j++) { - $illumMap->setpixel(x => $j, y => $i, color => $day); - } + $illumMap->setscanline(x => $nl, y => $i, + pixels => $day_p x ($oh + 1)); } } }