source: git/src/gdtconvert @ b4fe9fb

RELEASE/1.1RELEASE/1.2debug-cidebug-ci-sanitisersstereowalls-data
Last change on this file since b4fe9fb was b4fe9fb, checked in by Olly Betts <olly@…>, 21 years ago

Merged changes with 1.0 branch.

git-svn-id: file:///home/survex-svn/survex/branches/survex-1_1@2437 4b37db11-9a0c-4f06-9ece-9ab7cdaee568

  • Property mode set to 100755
File size: 1.4 KB
Line 
1#!/usr/bin/perl -w
2use strict;
3
4# converter for POV-Ray gradient files produced by The Gimp
5my $points = 13;
6my $prev = -1.0;
7my $interval = 1.0 / ($points-1);
8my $next = 0.0;
9my $pr = 0;
10my $pg = 0;
11my $pb = 0;
12my $prevpos = 0.0;
13my $outputr = "";
14my $outputg = "";
15my $outputb = "";
16while (my $l = <>) {
17   if ($l =~ /.*\[(\d\.\d+) color rgbt <(\d\.\d+), (\d\.\d+), (\d\.\d+).*/) {
18       if ($prev != $1) {
19           my $r = int($2 * 255);
20           my $g = int($3 * 255);
21           my $b = int($4 * 255);
22           my $pos = $1;
23           while ($pos >= $next) {
24               if ($prev == -1.0) {
25                   $outputr = $r;
26                   $outputg = $g;
27                   $outputb = $b;
28               }
29               else {
30                   my $faralong = $next - $prevpos;
31                   my $total = $pos - $prevpos;
32                   my $frac = $faralong / $total;
33
34                   my $newr = $pr + int(($r - $pr) * $frac);
35                   my $newg = $pg + int(($g - $pg) * $frac);
36                   my $newb = $pb + int(($b - $pb) * $frac);
37                   
38                   $outputr = "$outputr, $newr";
39                   $outputg = "$outputg, $newg";
40                   $outputb = "$outputb, $newb";
41               }
42               $next += $interval;
43           }
44           $pr = $r;
45           $pg = $g;
46           $pb = $b;
47           $prevpos = $pos;
48       }
49       $prev = $1;
50   }
51}
52print "static const unsigned char REDS[]   = {$outputr, 230};\n";
53print "static const unsigned char GREENS[] = {$outputg, 230};\n";
54print "static const unsigned char BLUES[]  = {$outputb, 230};\n";
55
Note: See TracBrowser for help on using the repository browser.