-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathsplashresize.tcl
More file actions
executable file
·121 lines (102 loc) · 6.33 KB
/
splashresize.tcl
File metadata and controls
executable file
·121 lines (102 loc) · 6.33 KB
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
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
#!/usr/local/bin/tclsh
cd /d/admin/code/de1beta/skins/default
set fast 1
proc fast_write_open {fn parms} {
set f [open $fn $parms]
fconfigure $f -blocking 0
fconfigure $f -buffersize 1000000
return $f
}
proc write_file {filename data} {
set fn [fast_write_open $filename w]
puts $fn $data
close $fn
return 1
}
proc read_file {filename} {
set fn [open $filename]
set data [read $fn]
close $fn
return $data
}
proc regsubex {regex in replace} {
set escaped [string map {\[ \\[ \] \\] \$ \\$ \\ \\\\} $in]
regsub -all $regex $escaped $replace result
set result [subst $result]
return $result
}
puts "Resizing skin 2560x1600 -> 1280x800"
cd 2560x1600
set do_this 0
if {$do_this == 1} {
exec convert nothing_on.png -resize 1280x800! ../1280x800/nothing_on.png
exec convert espresso_on.png -resize 1280x800! ../1280x800/espresso_on.png
exec convert settings_on.png -resize 1280x800! ../1280x800/settings_on.png
exec convert splash.png -resize 1280x800! ../1280x800/splash.png
exec convert splash_antique_1.jpg -resize 1280x800! ../1280x800/splash_antique_1.jpg
exec convert splash_antique_2.jpg -resize 1280x800! ../1280x800/splash_antique_2.jpg
exec convert splash_antique_3.jpg -resize 1280x800! ../1280x800/splash_antique_3.jpg
exec convert steam_on.png -resize 1280x800! ../1280x800/steam_on.png
exec convert tea_on.png -resize 1280x800! ../1280x800/tea_on.png
}
set newskin [read_file "skin.tcl"]
set newskin [regsubex {add_de1_text (".*?") ([0-9]+) ([0-9]+) } $newskin {add_de1_text \1 [expr {\2/2}] [expr {\3/2}] }]
set newskin [regsubex {add_de1_button (".*?") (.*?) ([0-9]+) ([0-9]+) ([0-9]+) ([0-9]+)\n} $newskin {add_de1_button \1 \2 [expr {\3/2}] [expr {\4/2}] [expr {\5/2}] [expr {\6/2}]\n}]
set newskin [regsubex {add_de1_variable (".*?") ([0-9]+) ([0-9]+) } $newskin {add_de1_variable \1 [expr {\2/2}] [expr {\3/2}] }]
set newskin [regsubex {\-width ([0-9]+)} $newskin {-width [expr {\1/2}]}]
write_file "../1280x800/skin.tcl" $newskin
set do_all 0
if {$do_all == 1} {
puts "Resizing skin 2560x1600 -> 1920x1200"
exec convert nothing_on.png -resize 1920x1200! ../1920x1200/nothing_on.png &
exec convert espresso_on.png -resize 1920x1200! ../1920x1200/espresso_on.png &
exec convert settings_on.png -resize 1920x1200! ../1920x1200/settings_on.png &
exec convert splash.png -resize 1920x1200! ../1920x1200/splash.png &
exec convert splash_antique_1.jpg -resize 1920x1200! ../1920x1200/splash_antique_1.jpg
exec convert splash_antique_2.jpg -resize 1920x1200! ../1920x1200/splash_antique_2.jpg
exec convert splash_antique_3.jpg -resize 1920x1200! ../1920x1200/splash_antique_3.jpg
exec convert steam_on.png -resize 1920x1200! ../1920x1200/steam_on.png &
exec convert tea_on.png -resize 1920x1200! ../1920x1200/tea_on.png &
set newskin [read_file "skin.tcl"]
set newskin [regsubex {add_de1_text (".*?") ([0-9]+) ([0-9]+) } $newskin {add_de1_text \1 [expr {int(\2/1.33)}] [expr {int(\3/1.33)}] }]
set newskin [regsubex {add_de1_button (".*?") (.*?) ([0-9]+) ([0-9]+) ([0-9]+) ([0-9]+)\n} $newskin {add_de1_button \1 \2 [expr {int(\3/1.33)}] [expr {int(\4/1.33)}] [expr {int(\5/1.33)}] [expr {int(\6/1.33)}]\n}]
set newskin [regsubex {add_de1_variable (".*?") ([0-9]+) ([0-9]+) } $newskin {add_de1_variable \1 [expr {int(\2/1.33)}] [expr {int(\3/1.33)}] }]
set newskin [regsubex {\-width ([0-9]+)} $newskin {-width [expr {int(\1/1.33)}]}]
write_file "../1920x1200/skin.tcl" $newskin
cd ..
cd 2560x1440
puts "Resizing skin 2560x1440 -> 1280x720"
exec convert nothing_on.png -resize 1280x720! ../1280x720/nothing_on.png
exec convert espresso_on.png -resize 1280x720! ../1280x720/espresso_on.png
exec convert settings_on.png -resize 1280x720! ../1280x720/settings_on.png
exec convert splash.png -resize 1280x720! ../1280x720/splash.png
exec convert splash_antique_1.jpg -resize 1280x720! ../1280x720/splash_antique_1.jpg
exec convert splash_antique_2.jpg -resize 1280x720! ../1280x720/splash_antique_2.jpg
exec convert splash_antique_3.jpg -resize 1280x720! ../1280x720/splash_antique_3.jpg
exec convert steam_on.png -resize 1280x720! ../1280x720/steam_on.png
exec convert tea_on.png -resize 1280x720! ../1280x720/tea_on.png
set newskin [read_file "skin.tcl"]
set newskin [regsubex {add_de1_text (".*?") ([0-9]+) ([0-9]+) } $newskin {add_de1_text \1 [expr {\2/2}] [expr {\3/2}] }]
set newskin [regsubex {add_de1_button (".*?") (.*?) ([0-9]+) ([0-9]+) ([0-9]+) ([0-9]+)\n} $newskin {add_de1_button \1 \2 [expr {\3/2}] [expr {\4/2}] [expr {\5/2}] [expr {\6/2}]\n}]
set newskin [regsubex {add_de1_variable (".*?") ([0-9]+) ([0-9]+) } $newskin {add_de1_variable \1 [expr {\2/2}] [expr {\3/2}] }]
set newskin [regsubex {\-width ([0-9]+)} $newskin {-width [expr {\1/2}]}]
write_file "../1280x720/skin.tcl" $newskin
puts "Resizing skin 2560x1440 -> 1920x1080"
exec convert nothing_on.png -resize 1920x1080! ../1920x1080/nothing_on.png
exec convert espresso_on.png -resize 1920x1080! ../1920x1080/espresso_on.png
exec convert settings_on.png -resize 1920x1080! ../1920x1080/settings_on.png
exec convert splash.png -resize 1920x1080! ../1920x1080/splash.png
exec convert splash_antique_1.jpg -resize 1920x1080! ../1920x1080/splash_antique_1.jpg
exec convert splash_antique_2.jpg -resize 1920x1080! ../1920x1080/splash_antique_2.jpg
exec convert splash_antique_3.jpg -resize 1920x1080! ../1920x1080/splash_antique_3.jpg
exec convert steam_on.png -resize 1920x1080! ../1920x1080/steam_on.png
exec convert tea_on.png -resize 1920x1080! ../1920x1080/tea_on.png
set newskin [read_file "skin.tcl"]
set newskin [regsubex {add_de1_text (".*?") ([0-9]+) ([0-9]+) } $newskin {add_de1_text \1 [expr {int(\2/1.33)}] [expr {int(\3/1.33)}] }]
set newskin [regsubex {add_de1_button (".*?") (.*?) ([0-9]+) ([0-9]+) ([0-9]+) ([0-9]+)\n} $newskin {add_de1_button \1 \2 [expr {int(\3/1.33)}] [expr {int(\4/1.33)}] [expr {int(\5/1.33)}] [expr {int(\6/1.33)}]\n}]
set newskin [regsubex {add_de1_variable (".*?") ([0-9]+) ([0-9]+) } $newskin {add_de1_variable \1 [expr {int(\2/1.33)}] [expr {int(\3/1.33)}] }]
set newskin [regsubex {\-width ([0-9]+)} $newskin {-width [expr {int(\1/1.33)}]}]
write_file "../1920x1080/skin.tcl" $newskin
}
cd ..
puts "done"