/tools/SplashScreenGenerator/main.rb

https://github.com/iraklisrossis/MoSync · Ruby · 174 lines · 119 code · 33 blank · 22 comment · 6 complexity · 5528cb2489e5dd0c3be5693d04264fcd MD5 · raw file

  1. #!/usr/bin/ruby
  2. # encoding: UTF-8
  3. # the above line, although it looks like a comment, is actually parsed by the
  4. # Ruby engine to set the default String encoding for this program.
  5. # Copyright (C) 2011 MoSync AB
  6. #
  7. # This program is free software; you can redistribute it and/or modify it under
  8. # the terms of the GNU General Public License, version 2, as published by
  9. # the Free Software Foundation.
  10. #
  11. # This program is distributed in the hope that it will be useful,
  12. # but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
  13. # or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
  14. # for more details.
  15. #
  16. # You should have received a copy of the GNU General Public License
  17. # along with this program; see the file COPYING. If not, write to the Free
  18. # Software Foundation, 59 Temple Place - Suite 330, Boston, MA
  19. # 02111-1307, USA.
  20. # This script generates a splash screen for the IDE, using RMagick operatations
  21. require 'rubygems'
  22. require 'RMagick'
  23. SV = RUBY_VERSION.split('.')
  24. if(SV[0] == '1' && SV[1] == '8')
  25. $KCODE = "UTF8"
  26. end
  27. HEADER_TEXT = 'MoSync SDK'
  28. version = ['Developer build', 'Unknown']
  29. PLATFORMS = [
  30. 'Android 2.3, 4.x',
  31. 'iOS (iPhone, iPad, iPod Touch) 5.1 - 6.1',
  32. 'Windows Phone 7.8',
  33. 'Java ME MIDP 2',
  34. 'Moblin 2.x',
  35. 'Symbian S60 2nd, 3rd, 5th edition',
  36. 'Windows Mobile 5.0 - 6.5',
  37. 'Windows Pocket PC 2003',
  38. 'Windows Smartphone 2003'
  39. ]
  40. if ARGV.length() == 4
  41. version[0] = ARGV[0] # MoSync SDK name
  42. version[1] = ARGV[1] # MoSync SDK date
  43. version[2] = ARGV[2] # git mosync hash
  44. version[3] = ARGV[3] # git eclipse hash
  45. elsif ARGV.length() > 0
  46. version[0] = ARGV[0] # MoSync SDK name
  47. version[1] = ARGV[1] # MoSync SDK date
  48. version[2] = ""
  49. version[3] = ""
  50. else
  51. raise "Splash Screen Generator error - no arguments provided"
  52. end
  53. COPYRIGHT = "Copyright © 2004-#{Time.new.year.to_s}. All rights reserved. " +
  54. "MoSync and the MoSync logo are registered trademarks of MoSync AB."
  55. img = Magick::Image.read('template.png').first
  56. img2 = Magick::Image.read('template_installer.png').first
  57. header = Magick::Draw.new
  58. header.annotate(img, 271, 200, 275, 110, HEADER_TEXT) do
  59. self.font = 'MyriadPro-Bold'
  60. self.pointsize = 19
  61. self.font_weight = Magick::BoldWeight
  62. self.fill = 'white'
  63. self.gravity = Magick::NorthWestGravity
  64. end
  65. puts "Injecting string to images : Version #{version[0].strip}"
  66. # Eclipse Splash
  67. header.annotate(img, 271, 340, 275, 130, "#{version[0].strip}" ) do
  68. self.font = 'Verdana'
  69. self.pointsize = 14
  70. self.font_weight = Magick::LighterWeight
  71. self.fill = 'white'
  72. self.gravity = Magick::NorthWestGravity
  73. end
  74. header.annotate(img, 271, 340, 20, 314, "MoSync #{version[2].strip}" ) do
  75. self.font = 'Verdana'
  76. self.pointsize = 10
  77. self.font_weight = Magick::LighterWeight
  78. self.fill = '#b0b0b0'
  79. self.gravity = Magick::NorthWestGravity
  80. end
  81. header.annotate(img, 271, 340, 20, 326, "Eclipse #{version[3].strip}" ) do
  82. self.font = 'Verdana'
  83. self.pointsize = 10
  84. self.font_weight = Magick::LighterWeight
  85. self.fill = '#b0b0b0'
  86. self.gravity = Magick::NorthWestGravity
  87. end
  88. header.annotate(img, 271, 340, 495, 326, "#{version[1].strip}" ) do
  89. self.font = 'Verdana'
  90. self.pointsize = 10
  91. self.font_weight = Magick::LighterWeight
  92. self.fill = '#b0b0b0'
  93. self.gravity = Magick::NorthWestGravity
  94. end
  95. # Installer Splash
  96. header.annotate(img2, 271, 340, 80, 230, "#{version[0].strip}" ) do
  97. self.font = 'Verdana'
  98. self.pointsize = 12
  99. self.font_weight = Magick::LighterWeight
  100. self.fill = 'white'
  101. self.gravity = Magick::NorthWestGravity
  102. end
  103. header.annotate(img2, 271, 340, 80, 245, "MoSync #{version[2].strip}" ) do
  104. self.font = 'Verdana'
  105. self.pointsize = 10
  106. self.font_weight = Magick::LighterWeight
  107. self.fill = '#b0b0b0'
  108. self.gravity = Magick::NorthWestGravity
  109. end
  110. header.annotate(img2, 271, 340, 80, 257, "Eclipse #{version[3].strip}" ) do
  111. self.font = 'Verdana'
  112. self.pointsize = 10
  113. self.font_weight = Magick::LighterWeight
  114. self.fill = '#b0b0b0'
  115. self.gravity = Magick::NorthWestGravity
  116. end
  117. header.annotate(img2, 271, 340, 80, 269, "#{version[1].strip}" ) do
  118. self.font = 'Verdana'
  119. self.pointsize = 10
  120. self.font_weight = Magick::LighterWeight
  121. self.fill = '#b0b0b0'
  122. self.gravity = Magick::NorthWestGravity
  123. end
  124. platforms = Magick::Image.read("caption:#{PLATFORMS.join(', ')}") do
  125. self.size = "300x200"
  126. self.pointsize = 12
  127. self.fill = '#b0b0b0'
  128. self.background_color = '#00000000'
  129. end
  130. copyright = Magick::Image.read("caption:#{COPYRIGHT}") do
  131. self.size = "600x100"
  132. self.pointsize = 11
  133. self.fill = '#b0b0b0'
  134. self.background_color = '#00000000'
  135. end
  136. img = img.composite(platforms.first, 275, 160, Magick::ScreenCompositeOp)
  137. img = img.composite(copyright.first, 20, 358, Magick::ScreenCompositeOp)
  138. img.write('bmp3:splash.bmp')
  139. img2.write('bmp3:installer_splash.bmp')
  140. about = img.scale(450, 288);
  141. about.write('about.png');