image_paradise 0.4.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of image_paradise might be problematic. Click here for more details.

Files changed (649) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE.md +38 -0
  3. data/README.md +928 -0
  4. data/USAGE.md +10 -0
  5. data/bin/black_white +10 -0
  6. data/bin/confree_generator +7 -0
  7. data/bin/create_new_image +7 -0
  8. data/bin/display_text_from_this_image +7 -0
  9. data/bin/draw_as_specified_from_the_yaml_file +7 -0
  10. data/bin/embed_the_filename_into_this_image +7 -0
  11. data/bin/image_paradise +7 -0
  12. data/bin/image_paradise_shell +7 -0
  13. data/bin/image_to_ascii +54 -0
  14. data/bin/image_to_pdf +7 -0
  15. data/bin/imageparadise_img2pdf +12 -0
  16. data/bin/img_text +14 -0
  17. data/bin/interlace +7 -0
  18. data/bin/jpg_to_pdf +12 -0
  19. data/bin/magic_card_border +8 -0
  20. data/bin/make_this_image_transparent +7 -0
  21. data/bin/morph_these_images +7 -0
  22. data/bin/optimize_this_image +7 -0
  23. data/bin/quality +7 -0
  24. data/bin/resize_by_percent +10 -0
  25. data/bin/rotate_left +7 -0
  26. data/bin/rotate_right +7 -0
  27. data/bin/round_the_corner +7 -0
  28. data/bin/ruby_montage +7 -0
  29. data/bin/transparent +15 -0
  30. data/doc/README.gen +871 -0
  31. data/doc/todo/TODO_FOR_THE_GTK_GUI.md +9 -0
  32. data/doc/todo/TODO_FOR_THE_IMAGE_PARADISE_PROJECT.md +22 -0
  33. data/doc/todo/TODO_WORK_THROUGH_THESE_LINKS.md +3 -0
  34. data/doc/todo/todo_for_the_libui_gui.md +4 -0
  35. data/image_paradise.gemspec +46 -0
  36. data/images/IMAGE_PARADISE_LOGO.png +0 -0
  37. data/lib/image_paradise/base/base.rb +293 -0
  38. data/lib/image_paradise/cfdg/1dca_pattern.cfdg +48 -0
  39. data/lib/image_paradise/cfdg/3d_coloured_cube.cfdg +95 -0
  40. data/lib/image_paradise/cfdg/a_3D_spiral.cfdg +40 -0
  41. data/lib/image_paradise/cfdg/a_chaotic_city.cfdg +156 -0
  42. data/lib/image_paradise/cfdg/a_coloured_red.cfdg +21 -0
  43. data/lib/image_paradise/cfdg/a_daisy_flower.cfdg +66 -0
  44. data/lib/image_paradise/cfdg/a_decorated_window.cfdg +74 -0
  45. data/lib/image_paradise/cfdg/a_human_profile.cfdg +303 -0
  46. data/lib/image_paradise/cfdg/a_lost_heart.cfdg +28 -0
  47. data/lib/image_paradise/cfdg/a_plant_root.cfdg +26 -0
  48. data/lib/image_paradise/cfdg/a_rather_realistic_forest.cfdg +29 -0
  49. data/lib/image_paradise/cfdg/a_shoreline_next_to_a_forest.cfdg +127 -0
  50. data/lib/image_paradise/cfdg/a_simple_mini_brain.cfdg +17 -0
  51. data/lib/image_paradise/cfdg/a_simple_star.cfdg +22 -0
  52. data/lib/image_paradise/cfdg/adorned_tree.cfdg +58 -0
  53. data/lib/image_paradise/cfdg/adsorption.cfdg +19 -0
  54. data/lib/image_paradise/cfdg/alfabet_free.cfdg +346 -0
  55. data/lib/image_paradise/cfdg/alfreebet.cfdg +229 -0
  56. data/lib/image_paradise/cfdg/algal_flora.cfdg +25 -0
  57. data/lib/image_paradise/cfdg/alien_eyeball.cfdg +15 -0
  58. data/lib/image_paradise/cfdg/alien_flower.cfdg +35 -0
  59. data/lib/image_paradise/cfdg/alphabet_circles.cfdg +38 -0
  60. data/lib/image_paradise/cfdg/alveolo.cfdg +38 -0
  61. data/lib/image_paradise/cfdg/an_icosahedron.cfdg +134 -0
  62. data/lib/image_paradise/cfdg/an_oils_surface.cfdg +48 -0
  63. data/lib/image_paradise/cfdg/ancient_map.cfdg +30 -0
  64. data/lib/image_paradise/cfdg/ancient_scripts_tile.cfdg +96 -0
  65. data/lib/image_paradise/cfdg/angelfish.cfdg +58 -0
  66. data/lib/image_paradise/cfdg/angry_yarn.cfdg +82 -0
  67. data/lib/image_paradise/cfdg/apple_tree_small.cfdg +46 -0
  68. data/lib/image_paradise/cfdg/aqua_star.cfdg +27 -0
  69. data/lib/image_paradise/cfdg/army_explosion.cfdg +25 -0
  70. data/lib/image_paradise/cfdg/arrows_in_quadcity.cfdg +143 -0
  71. data/lib/image_paradise/cfdg/artificial_intelligence.cfdg +41 -0
  72. data/lib/image_paradise/cfdg/askew.cfdg +27 -0
  73. data/lib/image_paradise/cfdg/audio_diagram_waves.cfdg +54 -0
  74. data/lib/image_paradise/cfdg/autumn_fractal.cfdg +39 -0
  75. data/lib/image_paradise/cfdg/baignoire.cfdg +33 -0
  76. data/lib/image_paradise/cfdg/barcode.cfdg +781 -0
  77. data/lib/image_paradise/cfdg/basic_polygon_shapes.cfdg +311 -0
  78. data/lib/image_paradise/cfdg/basic_spreaders.cfdg +52 -0
  79. data/lib/image_paradise/cfdg/basic_square.cfdg +8 -0
  80. data/lib/image_paradise/cfdg/bats_hiding_in_foliage.cfdg +19 -0
  81. data/lib/image_paradise/cfdg/bees.cfdg +61 -0
  82. data/lib/image_paradise/cfdg/bent_squares.cfdg +46 -0
  83. data/lib/image_paradise/cfdg/benzo_dreaming.cfdg +54 -0
  84. data/lib/image_paradise/cfdg/beta_bet.cfdg +645 -0
  85. data/lib/image_paradise/cfdg/big_bang_theory.cfdg +31 -0
  86. data/lib/image_paradise/cfdg/big_pacman.cfdg +70 -0
  87. data/lib/image_paradise/cfdg/bigger_tree.cfdg +64 -0
  88. data/lib/image_paradise/cfdg/binary_connection.cfdg +34 -0
  89. data/lib/image_paradise/cfdg/birch_line.cfdg +57 -0
  90. data/lib/image_paradise/cfdg/blacksmith_masterpiece.cfdg +3 -0
  91. data/lib/image_paradise/cfdg/blocked_rectangles.cfdg +23 -0
  92. data/lib/image_paradise/cfdg/blood_tubes.cfdg +45 -0
  93. data/lib/image_paradise/cfdg/bloom.cfdg +23 -0
  94. data/lib/image_paradise/cfdg/blown_glass_spheres.cfdg +30 -0
  95. data/lib/image_paradise/cfdg/blue_daisies_in_detail.cfdg +101 -0
  96. data/lib/image_paradise/cfdg/blue_galaxy.cfdg +20 -0
  97. data/lib/image_paradise/cfdg/blue_moon.cfdg +36 -0
  98. data/lib/image_paradise/cfdg/boa_feathers.cfdg +53 -0
  99. data/lib/image_paradise/cfdg/bomb.cfdg +75 -0
  100. data/lib/image_paradise/cfdg/boxy_continent.cfdg +111 -0
  101. data/lib/image_paradise/cfdg/bright_coloured_neurons.cfdg +53 -0
  102. data/lib/image_paradise/cfdg/brightness_flower.cfdg +31 -0
  103. data/lib/image_paradise/cfdg/btp_71_beautiful_coloured_lines.cfdg +85 -0
  104. data/lib/image_paradise/cfdg/btp_73.cfdg +76 -0
  105. data/lib/image_paradise/cfdg/bubblesun.cfdg +46 -0
  106. data/lib/image_paradise/cfdg/burning_bush.cfdg +31 -0
  107. data/lib/image_paradise/cfdg/butterflies_in_the_moonlight.cfdg +55 -0
  108. data/lib/image_paradise/cfdg/cardiod_arc.cfdg +44 -0
  109. data/lib/image_paradise/cfdg/cardioid.cfdg +41 -0
  110. data/lib/image_paradise/cfdg/caros_wallpaper.cfdg +46 -0
  111. data/lib/image_paradise/cfdg/cartoony_face_arrays.cfdg +137 -0
  112. data/lib/image_paradise/cfdg/centerfold.cfdg +12 -0
  113. data/lib/image_paradise/cfdg/chain_link_fence.cfdg +31 -0
  114. data/lib/image_paradise/cfdg/chanukah.cfdg +109 -0
  115. data/lib/image_paradise/cfdg/chaos_red_sun.cfdg +42 -0
  116. data/lib/image_paradise/cfdg/chaotic_farn.cfdg +76 -0
  117. data/lib/image_paradise/cfdg/chaotic_fractal_shell.cfdg +41 -0
  118. data/lib/image_paradise/cfdg/charleston.cfdg +182 -0
  119. data/lib/image_paradise/cfdg/ciliasun.cfdg +109 -0
  120. data/lib/image_paradise/cfdg/cipal.cfdg +65 -0
  121. data/lib/image_paradise/cfdg/circuits.cfdg +176 -0
  122. data/lib/image_paradise/cfdg/city_map.cfdg +66 -0
  123. data/lib/image_paradise/cfdg/clifford_torus.cfdg +135 -0
  124. data/lib/image_paradise/cfdg/colonize_flat_colour_pattern.cfdg +14 -0
  125. data/lib/image_paradise/cfdg/colour_blind_squid.cfdg +30 -0
  126. data/lib/image_paradise/cfdg/colour_hole.cfdg +56 -0
  127. data/lib/image_paradise/cfdg/colour_wheel.cfdg +40 -0
  128. data/lib/image_paradise/cfdg/coloured_eyes.cfdg +40 -0
  129. data/lib/image_paradise/cfdg/coloured_forest.cfdg +133 -0
  130. data/lib/image_paradise/cfdg/coloured_tree.cfdg +50 -0
  131. data/lib/image_paradise/cfdg/colourful_lives.cfdg +123 -0
  132. data/lib/image_paradise/cfdg/colourful_neuronal_network.cfdg +32 -0
  133. data/lib/image_paradise/cfdg/complex_city_plans.cfdg +75 -0
  134. data/lib/image_paradise/cfdg/complex_kritworks.cfdg +75 -0
  135. data/lib/image_paradise/cfdg/complex_snowflake.cfdg +61 -0
  136. data/lib/image_paradise/cfdg/conspiracy_theory.cfdg +104 -0
  137. data/lib/image_paradise/cfdg/constellation_grid.cfdg +29 -0
  138. data/lib/image_paradise/cfdg/cool_caterpillar.cfdg +44 -0
  139. data/lib/image_paradise/cfdg/coolcubes.cfdg +70 -0
  140. data/lib/image_paradise/cfdg/crawler_battle.cfdg +93 -0
  141. data/lib/image_paradise/cfdg/crazy_octo.cfdg +48 -0
  142. data/lib/image_paradise/cfdg/cthulhu.cfdg +166 -0
  143. data/lib/image_paradise/cfdg/cubies.cfdg +43 -0
  144. data/lib/image_paradise/cfdg/cubist_sunset.cfdg +55 -0
  145. data/lib/image_paradise/cfdg/curled_tree.cfdg +37 -0
  146. data/lib/image_paradise/cfdg/curls.cfdg +45 -0
  147. data/lib/image_paradise/cfdg/curve_stiched.cfdg +59 -0
  148. data/lib/image_paradise/cfdg/curved_tubes.cfdg +20 -0
  149. data/lib/image_paradise/cfdg/cylinder_city.cfdg +27 -0
  150. data/lib/image_paradise/cfdg/cymbal.cfdg +38 -0
  151. data/lib/image_paradise/cfdg/d_mustard.cfdg +52 -0
  152. data/lib/image_paradise/cfdg/dance_party.cfdg +81 -0
  153. data/lib/image_paradise/cfdg/dance_party_and_background.cfdg +86 -0
  154. data/lib/image_paradise/cfdg/decreasing_aperture.cfdg +16 -0
  155. data/lib/image_paradise/cfdg/delicat_twist.cfdg +13 -0
  156. data/lib/image_paradise/cfdg/demo_text.cfdg +22 -0
  157. data/lib/image_paradise/cfdg/dennis_ritchie.cfdg +294 -0
  158. data/lib/image_paradise/cfdg/diablo.cfdg +47 -0
  159. data/lib/image_paradise/cfdg/different_flowers.cfdg +60 -0
  160. data/lib/image_paradise/cfdg/different_snowflakes_shapes.cfdg +149 -0
  161. data/lib/image_paradise/cfdg/dimensions.cfdg +33 -0
  162. data/lib/image_paradise/cfdg/domino_pieces.cfdg +166 -0
  163. data/lib/image_paradise/cfdg/dong.cfdg +41 -0
  164. data/lib/image_paradise/cfdg/drip_shape.cfdg +24 -0
  165. data/lib/image_paradise/cfdg/earthday2007b.cfdg +49 -0
  166. data/lib/image_paradise/cfdg/edera_circles.cfdg +55 -0
  167. data/lib/image_paradise/cfdg/eight_queens_problem.cfdg +85 -0
  168. data/lib/image_paradise/cfdg/electro_shock.cfdg +88 -0
  169. data/lib/image_paradise/cfdg/enter_the_force_field.cfdg +56 -0
  170. data/lib/image_paradise/cfdg/escargot_fleur.cfdg +98 -0
  171. data/lib/image_paradise/cfdg/european_city.cfdg +63 -0
  172. data/lib/image_paradise/cfdg/evil_eye.cfdg +74 -0
  173. data/lib/image_paradise/cfdg/evolving_coloured_spots.cfdg +47 -0
  174. data/lib/image_paradise/cfdg/excellines_nr2.cfdg +171 -0
  175. data/lib/image_paradise/cfdg/exoplanet_settlement.cfdg +117 -0
  176. data/lib/image_paradise/cfdg/explosion.cfdg +45 -0
  177. data/lib/image_paradise/cfdg/explosion_of_a_megabyte.cfdg +73 -0
  178. data/lib/image_paradise/cfdg/eye_of_katora.cfdg +20 -0
  179. data/lib/image_paradise/cfdg/family_tree.cfdg +169 -0
  180. data/lib/image_paradise/cfdg/feathers.cfdg +17 -0
  181. data/lib/image_paradise/cfdg/ferma_drawings.cfdg +23 -0
  182. data/lib/image_paradise/cfdg/fevrier.cfdg +66 -0
  183. data/lib/image_paradise/cfdg/fibmod.cfdg +25 -0
  184. data/lib/image_paradise/cfdg/field_of_boxes.cfdg +21 -0
  185. data/lib/image_paradise/cfdg/finetre.cfdg +34 -0
  186. data/lib/image_paradise/cfdg/fireblorks.cfdg +37 -0
  187. data/lib/image_paradise/cfdg/first_branch.cfdg +18 -0
  188. data/lib/image_paradise/cfdg/fish_with_coloured_bubbles.cfdg +77 -0
  189. data/lib/image_paradise/cfdg/fishing_lure.cfdg +30 -0
  190. data/lib/image_paradise/cfdg/flake.cfdg +20 -0
  191. data/lib/image_paradise/cfdg/flaming_spiro.cfdg +10 -0
  192. data/lib/image_paradise/cfdg/fleshflower.cfdg +25 -0
  193. data/lib/image_paradise/cfdg/flourescent_fish_btp.cfdg +48 -0
  194. data/lib/image_paradise/cfdg/flow_control_shape.cfdg +45 -0
  195. data/lib/image_paradise/cfdg/flower_galaxy.cfdg +57 -0
  196. data/lib/image_paradise/cfdg/flower_house.cfdg +115 -0
  197. data/lib/image_paradise/cfdg/flower_stories.cfdg +136 -0
  198. data/lib/image_paradise/cfdg/fluctuating_heart.cfdg +87 -0
  199. data/lib/image_paradise/cfdg/fly_agaric.cfdg +22 -0
  200. data/lib/image_paradise/cfdg/forest_and_ocean.cfdg +65 -0
  201. data/lib/image_paradise/cfdg/fractal_fern.cfdg +15 -0
  202. data/lib/image_paradise/cfdg/fractal_shell.cfdg +36 -0
  203. data/lib/image_paradise/cfdg/frost_bite.cfdg +23 -0
  204. data/lib/image_paradise/cfdg/fun_with_paper.cfdg +17 -0
  205. data/lib/image_paradise/cfdg/func_plot.cfdg +59 -0
  206. data/lib/image_paradise/cfdg/funky_squiggle.cfdg +40 -0
  207. data/lib/image_paradise/cfdg/fuzzy_sun.cfdg +47 -0
  208. data/lib/image_paradise/cfdg/galaxy.cfdg +59 -0
  209. data/lib/image_paradise/cfdg/gallery.cfdg +28 -0
  210. data/lib/image_paradise/cfdg/game1_turn6.cfdg +35 -0
  211. data/lib/image_paradise/cfdg/garland.cfdg +42 -0
  212. data/lib/image_paradise/cfdg/general_polygons.cfdg +20 -0
  213. data/lib/image_paradise/cfdg/generational_birds.cfdg +118 -0
  214. data/lib/image_paradise/cfdg/ghostly_spine.cfdg +24 -0
  215. data/lib/image_paradise/cfdg/gift_wrapping.cfdg +46 -0
  216. data/lib/image_paradise/cfdg/glass_cubes.cfdg +33 -0
  217. data/lib/image_paradise/cfdg/gleaming_bush.cfdg +33 -0
  218. data/lib/image_paradise/cfdg/glowing_bush.cfdg +33 -0
  219. data/lib/image_paradise/cfdg/go_grid.cfdg +32 -0
  220. data/lib/image_paradise/cfdg/gold_tiles.cfdg +21 -0
  221. data/lib/image_paradise/cfdg/golden_rectangle.cfdg +19 -0
  222. data/lib/image_paradise/cfdg/golden_sierpinski.cfdg +49 -0
  223. data/lib/image_paradise/cfdg/golgi_stain.cfdg +74 -0
  224. data/lib/image_paradise/cfdg/gothic_bath_tiles.cfdg +14 -0
  225. data/lib/image_paradise/cfdg/grass_land.cfdg +112 -0
  226. data/lib/image_paradise/cfdg/gray_matter.cfdg +110 -0
  227. data/lib/image_paradise/cfdg/great_forest.cfdg +91 -0
  228. data/lib/image_paradise/cfdg/growth.cfdg +46 -0
  229. data/lib/image_paradise/cfdg/gumtree.cfdg +28 -0
  230. data/lib/image_paradise/cfdg/haggards_bull.cfdg +92 -0
  231. data/lib/image_paradise/cfdg/haight_ashbury.cfdg +882 -0
  232. data/lib/image_paradise/cfdg/hair_pattern.cfdg +59 -0
  233. data/lib/image_paradise/cfdg/hairy.cfdg +43 -0
  234. data/lib/image_paradise/cfdg/hairy_branch.cfdg +48 -0
  235. data/lib/image_paradise/cfdg/hands_and_feet.cfdg +49 -0
  236. data/lib/image_paradise/cfdg/happy_new_year.cfdg +3435 -0
  237. data/lib/image_paradise/cfdg/hatagu_lila_spiral.cfdg +27 -0
  238. data/lib/image_paradise/cfdg/hexaeder_triangle.cfdg +43 -0
  239. data/lib/image_paradise/cfdg/hexclouds_textures.cfdg +75 -0
  240. data/lib/image_paradise/cfdg/hextiles.cfdg +73 -0
  241. data/lib/image_paradise/cfdg/hexy_continent.cfdg +83 -0
  242. data/lib/image_paradise/cfdg/human_ballet.cfdg +215 -0
  243. data/lib/image_paradise/cfdg/human_eyes.cfdg +102 -0
  244. data/lib/image_paradise/cfdg/hydra_tail.cfdg +57 -0
  245. data/lib/image_paradise/cfdg/i_like_it_dirty.cfdg +88 -0
  246. data/lib/image_paradise/cfdg/i_pix.cfdg +679 -0
  247. data/lib/image_paradise/cfdg/imaginary_star.cfdg +55 -0
  248. data/lib/image_paradise/cfdg/imaginery_forest.cfdg +61 -0
  249. data/lib/image_paradise/cfdg/impossible_stairs.cfdg +211 -0
  250. data/lib/image_paradise/cfdg/in_the_morning.cfdg +83 -0
  251. data/lib/image_paradise/cfdg/inertial_confinement.cfdg +150 -0
  252. data/lib/image_paradise/cfdg/infected_shell.cfdg +56 -0
  253. data/lib/image_paradise/cfdg/insect_fight.cfdg +316 -0
  254. data/lib/image_paradise/cfdg/insectivore.cfdg +80 -0
  255. data/lib/image_paradise/cfdg/interference.cfdg +43 -0
  256. data/lib/image_paradise/cfdg/interference_fields.cfdg +25 -0
  257. data/lib/image_paradise/cfdg/into_the_deep.cfdg +96 -0
  258. data/lib/image_paradise/cfdg/inverted_decorations.cfdg +85 -0
  259. data/lib/image_paradise/cfdg/irregular_galaxies.cfdg +29 -0
  260. data/lib/image_paradise/cfdg/iso_blocks.cfdg +35 -0
  261. data/lib/image_paradise/cfdg/jewelry_old_style.cfdg +31 -0
  262. data/lib/image_paradise/cfdg/just_some_flowers.cfdg +127 -0
  263. data/lib/image_paradise/cfdg/kaboom.cfdg +40 -0
  264. data/lib/image_paradise/cfdg/kaleidoskop.cfdg +27 -0
  265. data/lib/image_paradise/cfdg/kama_sutra.cfdg +182 -0
  266. data/lib/image_paradise/cfdg/kitakoa_akiyoshi_illusions_roller.cfdg +40 -0
  267. data/lib/image_paradise/cfdg/koch_snowflake.cfdg +11 -0
  268. data/lib/image_paradise/cfdg/kochlea.cfdg +43 -0
  269. data/lib/image_paradise/cfdg/kreepykrawler.cfdg +48 -0
  270. data/lib/image_paradise/cfdg/kw_expanded_explosion.cfdg +46 -0
  271. data/lib/image_paradise/cfdg/lapsang_abstrait.cfdg +51 -0
  272. data/lib/image_paradise/cfdg/laser.cfdg +51 -0
  273. data/lib/image_paradise/cfdg/last_pluto_dream.cfdg +95 -0
  274. data/lib/image_paradise/cfdg/lazy_dust.cfdg +42 -0
  275. data/lib/image_paradise/cfdg/lesson_one_two_three_four.cfdg +217 -0
  276. data/lib/image_paradise/cfdg/lila_lili.cfdg +60 -0
  277. data/lib/image_paradise/cfdg/lindenmayergrassef2_pretty_flowers.cfdg +94 -0
  278. data/lib/image_paradise/cfdg/lines_from_excel.cfdg +136 -0
  279. data/lib/image_paradise/cfdg/looking_out.cfdg +51 -0
  280. data/lib/image_paradise/cfdg/looking_up_in_the_sky.cfdg +43 -0
  281. data/lib/image_paradise/cfdg/lotus_logo.cfdg +49 -0
  282. data/lib/image_paradise/cfdg/lowercased_alphabet.cfdg +565 -0
  283. data/lib/image_paradise/cfdg/luma_smiley.cfdg +563 -0
  284. data/lib/image_paradise/cfdg/maggi_stars.cfdg +11 -0
  285. data/lib/image_paradise/cfdg/mandelbrot_3.cfdg +111 -0
  286. data/lib/image_paradise/cfdg/martini.cfdg +147 -0
  287. data/lib/image_paradise/cfdg/material_studies.cfdg +172 -0
  288. data/lib/image_paradise/cfdg/math_eye.cfdg +30 -0
  289. data/lib/image_paradise/cfdg/matrix_freestyle.cfdg +127 -0
  290. data/lib/image_paradise/cfdg/maze.cfdg +211 -0
  291. data/lib/image_paradise/cfdg/meaculpo.cfdg +46 -0
  292. data/lib/image_paradise/cfdg/medieval_madness.cfdg +140 -0
  293. data/lib/image_paradise/cfdg/menage_a_trois.cfdg +77 -0
  294. data/lib/image_paradise/cfdg/micky_mouse.cfdg +75 -0
  295. data/lib/image_paradise/cfdg/mistletoe_forest.cfdg +62 -0
  296. data/lib/image_paradise/cfdg/mixed_simple_bubbles.cfdg +20 -0
  297. data/lib/image_paradise/cfdg/mod4g_starhole.cfdg +27 -0
  298. data/lib/image_paradise/cfdg/moebius.cfdg +57 -0
  299. data/lib/image_paradise/cfdg/molecules.cfdg +30 -0
  300. data/lib/image_paradise/cfdg/momos_blossom.cfdg +70 -0
  301. data/lib/image_paradise/cfdg/mona_lisa.cfdg +7937 -0
  302. data/lib/image_paradise/cfdg/more_arrows_in_quadcity.cfdg +49 -0
  303. data/lib/image_paradise/cfdg/more_cats.cfdg +1002 -0
  304. data/lib/image_paradise/cfdg/mosaic_for_2D_games.cfdg +69 -0
  305. data/lib/image_paradise/cfdg/mr_bezier.cfdg +195 -0
  306. data/lib/image_paradise/cfdg/mtree.cfdg +33 -0
  307. data/lib/image_paradise/cfdg/multiple_triangles.cfdg +13 -0
  308. data/lib/image_paradise/cfdg/mycel.cfdg +88 -0
  309. data/lib/image_paradise/cfdg/mytohexagone.cfdg +56 -0
  310. data/lib/image_paradise/cfdg/nature_is_not_like_that.cfdg +48 -0
  311. data/lib/image_paradise/cfdg/negative_flowers.cfdg +85 -0
  312. data/lib/image_paradise/cfdg/neo_town.cfdg +41 -0
  313. data/lib/image_paradise/cfdg/nesting_pattern.cfdg +34 -0
  314. data/lib/image_paradise/cfdg/neuronal_network.cfdg +94 -0
  315. data/lib/image_paradise/cfdg/neuronal_root.cfdg +46 -0
  316. data/lib/image_paradise/cfdg/night.cfdg +82 -0
  317. data/lib/image_paradise/cfdg/nightwalker.cfdg +23 -0
  318. data/lib/image_paradise/cfdg/no_xcape.cfdg +41 -0
  319. data/lib/image_paradise/cfdg/noise.cfdg +12 -0
  320. data/lib/image_paradise/cfdg/octopodi.cfdg +51 -0
  321. data/lib/image_paradise/cfdg/octopussy.cfdg +49 -0
  322. data/lib/image_paradise/cfdg/oldschool_cartoon_figure.cfdg +181 -0
  323. data/lib/image_paradise/cfdg/open_shapes.cfdg +240 -0
  324. data/lib/image_paradise/cfdg/orange_blossom.cfdg +57 -0
  325. data/lib/image_paradise/cfdg/orange_guts.cfdg +43 -0
  326. data/lib/image_paradise/cfdg/orange_monster.cfdg +42 -0
  327. data/lib/image_paradise/cfdg/organic.cfdg +30 -0
  328. data/lib/image_paradise/cfdg/ouo_happy_smiley.cfdg +45 -0
  329. data/lib/image_paradise/cfdg/output.png +0 -0
  330. data/lib/image_paradise/cfdg/pacman.cfdg +18 -0
  331. data/lib/image_paradise/cfdg/palmen.cfdg +162 -0
  332. data/lib/image_paradise/cfdg/pandoras_box.cfdg +53 -0
  333. data/lib/image_paradise/cfdg/papillon_butterfly.cfdg +28 -0
  334. data/lib/image_paradise/cfdg/patchwork.cfdg +32 -0
  335. data/lib/image_paradise/cfdg/pattern_grass.cfdg +110 -0
  336. data/lib/image_paradise/cfdg/peau_de_grenouille.cfdg +16 -0
  337. data/lib/image_paradise/cfdg/penrose_tiling.cfdg +102 -0
  338. data/lib/image_paradise/cfdg/pentagon.cfdg +68 -0
  339. data/lib/image_paradise/cfdg/pentagons.cfdg +25 -0
  340. data/lib/image_paradise/cfdg/perspective_tsunami.cfdg +20 -0
  341. data/lib/image_paradise/cfdg/phi_cloud.cfdg +23 -0
  342. data/lib/image_paradise/cfdg/picnic_birds_eye_view.cfdg +132 -0
  343. data/lib/image_paradise/cfdg/ping_pong.cfdg +29 -0
  344. data/lib/image_paradise/cfdg/pink_blossom.cfdg +58 -0
  345. data/lib/image_paradise/cfdg/piupole.cfdg +77 -0
  346. data/lib/image_paradise/cfdg/plotting.cfdg +61 -0
  347. data/lib/image_paradise/cfdg/point_onto_root.cfdg +64 -0
  348. data/lib/image_paradise/cfdg/primitive_reptile_pattern.cfdg +96 -0
  349. data/lib/image_paradise/cfdg/psycho_knot.cfdg +20 -0
  350. data/lib/image_paradise/cfdg/pyramide.cfdg +67 -0
  351. data/lib/image_paradise/cfdg/pythagoras_puzzle.cfdg +17 -0
  352. data/lib/image_paradise/cfdg/pythagorean_tree.cfdg +70 -0
  353. data/lib/image_paradise/cfdg/qimica.cfdg +64 -0
  354. data/lib/image_paradise/cfdg/quad_green_satellite.cfdg +53 -0
  355. data/lib/image_paradise/cfdg/quadcity.cfdg +24 -0
  356. data/lib/image_paradise/cfdg/quiet_wood_town.cfdg +195 -0
  357. data/lib/image_paradise/cfdg/r180.cfdg +26 -0
  358. data/lib/image_paradise/cfdg/r45.cfdg +26 -0
  359. data/lib/image_paradise/cfdg/r_square.cfdg +36 -0
  360. data/lib/image_paradise/cfdg/rads.cfdg +33 -0
  361. data/lib/image_paradise/cfdg/rainbow_black_hole.cfdg +9 -0
  362. data/lib/image_paradise/cfdg/rainbow_sun.cfdg +9 -0
  363. data/lib/image_paradise/cfdg/random_handwriting.cfdg +50 -0
  364. data/lib/image_paradise/cfdg/random_tile_shapes_jens_revisited.cfdg +146 -0
  365. data/lib/image_paradise/cfdg/rays_attack.cfdg +29 -0
  366. data/lib/image_paradise/cfdg/razpad.cfdg +20 -0
  367. data/lib/image_paradise/cfdg/rectangular_distortion.cfdg +169 -0
  368. data/lib/image_paradise/cfdg/recurse_path.cfdg +38 -0
  369. data/lib/image_paradise/cfdg/red_flurry.cfdg +64 -0
  370. data/lib/image_paradise/cfdg/red_horse_tail.cfdg +36 -0
  371. data/lib/image_paradise/cfdg/red_yellow_mosaic.cfdg +26 -0
  372. data/lib/image_paradise/cfdg/rendering_tests.cfdg +183 -0
  373. data/lib/image_paradise/cfdg/repeat_floor_tile_pattern.cfdg +153 -0
  374. data/lib/image_paradise/cfdg/repeat_tile.cfdg +160 -0
  375. data/lib/image_paradise/cfdg/retro_disc.cfdg +736 -0
  376. data/lib/image_paradise/cfdg/ring_growth_variation.cfdg +41 -0
  377. data/lib/image_paradise/cfdg/robot_nightlife.cfdg +25 -0
  378. data/lib/image_paradise/cfdg/rolled_firespiral.cfdg +34 -0
  379. data/lib/image_paradise/cfdg/rose.cfdg +44 -0
  380. data/lib/image_paradise/cfdg/round_tree.cfdg +121 -0
  381. data/lib/image_paradise/cfdg/rubiks_cube.cfdg +120 -0
  382. data/lib/image_paradise/cfdg/ruins.cfdg +19 -0
  383. data/lib/image_paradise/cfdg/sails_and_the_sea.cfdg +27 -0
  384. data/lib/image_paradise/cfdg/salt_crystals.cfdg +26 -0
  385. data/lib/image_paradise/cfdg/saturn.cfdg +105 -0
  386. data/lib/image_paradise/cfdg/scary_pot.cfdg +49 -0
  387. data/lib/image_paradise/cfdg/schematic_worm.cfdg +35 -0
  388. data/lib/image_paradise/cfdg/school_script.cfdg +359 -0
  389. data/lib/image_paradise/cfdg/seahorse.cfdg +78 -0
  390. data/lib/image_paradise/cfdg/seasons.cfdg +115 -0
  391. data/lib/image_paradise/cfdg/segmental_veins.cfdg +66 -0
  392. data/lib/image_paradise/cfdg/select_mayhem.cfdg +28 -0
  393. data/lib/image_paradise/cfdg/seven_folded_symmetry.cfdg +7 -0
  394. data/lib/image_paradise/cfdg/several_cats.cfdg +996 -0
  395. data/lib/image_paradise/cfdg/shadow_box.cfdg +49 -0
  396. data/lib/image_paradise/cfdg/shadowrun_google_maps.cfdg +66 -0
  397. data/lib/image_paradise/cfdg/shadowrun_nightline.cfdg +18 -0
  398. data/lib/image_paradise/cfdg/shards.cfdg +70 -0
  399. data/lib/image_paradise/cfdg/sheet_music.cfdg +213 -0
  400. data/lib/image_paradise/cfdg/shy_guy.cfdg +886 -0
  401. data/lib/image_paradise/cfdg/sierpinski1.cfdg +41 -0
  402. data/lib/image_paradise/cfdg/sierpinski2.cfdg +34 -0
  403. data/lib/image_paradise/cfdg/sierpinski_like_red_swirl.cfdg +46 -0
  404. data/lib/image_paradise/cfdg/sierpinsktri.cfdg +9 -0
  405. data/lib/image_paradise/cfdg/silk_flowers.cfdg +68 -0
  406. data/lib/image_paradise/cfdg/silk_scarf.cfdg +18 -0
  407. data/lib/image_paradise/cfdg/simple_cilia.cfdg +88 -0
  408. data/lib/image_paradise/cfdg/simple_circle_and_square.cfdg +7 -0
  409. data/lib/image_paradise/cfdg/simple_coloured_square.cfdg +38 -0
  410. data/lib/image_paradise/cfdg/simple_ferns.cfdg +40 -0
  411. data/lib/image_paradise/cfdg/simple_fish.cfdg +77 -0
  412. data/lib/image_paradise/cfdg/simple_orchid.cfdg +23 -0
  413. data/lib/image_paradise/cfdg/simple_rounded_colour_wheel.cfdg +10 -0
  414. data/lib/image_paradise/cfdg/simple_sheet_music.cfdg +27 -0
  415. data/lib/image_paradise/cfdg/sincos_pattern_2.cfdg +42 -0
  416. data/lib/image_paradise/cfdg/singing_birdy.cfdg +112 -0
  417. data/lib/image_paradise/cfdg/skyscraper.cfdg +85 -0
  418. data/lib/image_paradise/cfdg/small_golden_rectangle.cfdg +12 -0
  419. data/lib/image_paradise/cfdg/smells_like_layered.cfdg +43 -0
  420. data/lib/image_paradise/cfdg/snowflake.cfdg +26 -0
  421. data/lib/image_paradise/cfdg/snowstorm.cfdg +26 -0
  422. data/lib/image_paradise/cfdg/soar_on_wings.cfdg +8 -0
  423. data/lib/image_paradise/cfdg/soft_core.cfdg +26 -0
  424. data/lib/image_paradise/cfdg/soft_touch.cfdg +20 -0
  425. data/lib/image_paradise/cfdg/some_sort_of_tree.cfdg +57 -0
  426. data/lib/image_paradise/cfdg/spade_ball.cfdg +39 -0
  427. data/lib/image_paradise/cfdg/sparks.cfdg +39 -0
  428. data/lib/image_paradise/cfdg/sperm.cfdg +63 -0
  429. data/lib/image_paradise/cfdg/sphinx.cfdg +17 -0
  430. data/lib/image_paradise/cfdg/spiral_clusters.cfdg +29 -0
  431. data/lib/image_paradise/cfdg/spiral_cross.cfdg +27 -0
  432. data/lib/image_paradise/cfdg/spiral_star.cfdg +19 -0
  433. data/lib/image_paradise/cfdg/spiral_sun.cfdg +39 -0
  434. data/lib/image_paradise/cfdg/spirit.cfdg +47 -0
  435. data/lib/image_paradise/cfdg/splatter_tree.cfdg +61 -0
  436. data/lib/image_paradise/cfdg/spliced.cfdg +27 -0
  437. data/lib/image_paradise/cfdg/spring_parade.cfdg +105 -0
  438. data/lib/image_paradise/cfdg/sprinkle_explosion.cfdg +23 -0
  439. data/lib/image_paradise/cfdg/square_limit_one.cfdg +15 -0
  440. data/lib/image_paradise/cfdg/square_rose.cfdg +75 -0
  441. data/lib/image_paradise/cfdg/square_spiral4.cfdg +41 -0
  442. data/lib/image_paradise/cfdg/square_star.cfdg +39 -0
  443. data/lib/image_paradise/cfdg/squiggle.cfdg +54 -0
  444. data/lib/image_paradise/cfdg/stacked_blob.cfdg +27 -0
  445. data/lib/image_paradise/cfdg/star_explosion.cfdg +38 -0
  446. data/lib/image_paradise/cfdg/star_flower.cfdg +72 -0
  447. data/lib/image_paradise/cfdg/star_mosaic_2007.cfdg +51 -0
  448. data/lib/image_paradise/cfdg/starry_pines.cfdg +79 -0
  449. data/lib/image_paradise/cfdg/stars_tentacles.cfdg +28 -0
  450. data/lib/image_paradise/cfdg/starshape.cfdg +57 -0
  451. data/lib/image_paradise/cfdg/strange_antlers.cfdg +49 -0
  452. data/lib/image_paradise/cfdg/strange_carpet.cfdg +13 -0
  453. data/lib/image_paradise/cfdg/sunset_city.cfdg +112 -0
  454. data/lib/image_paradise/cfdg/sweep.cfdg +946 -0
  455. data/lib/image_paradise/cfdg/swimmers_sperms.cfdg +54 -0
  456. data/lib/image_paradise/cfdg/sword.cfdg +24 -0
  457. data/lib/image_paradise/cfdg/tangle.cfdg +25 -0
  458. data/lib/image_paradise/cfdg/tapestry.cfdg +40 -0
  459. data/lib/image_paradise/cfdg/tasty_loops.cfdg +97 -0
  460. data/lib/image_paradise/cfdg/tendril.cfdg +6 -0
  461. data/lib/image_paradise/cfdg/tentacle_tree.cfdg +57 -0
  462. data/lib/image_paradise/cfdg/terraforming.cfdg +87 -0
  463. data/lib/image_paradise/cfdg/test.cfdg +7 -0
  464. data/lib/image_paradise/cfdg/tetris.cfdg +123 -0
  465. data/lib/image_paradise/cfdg/textured_giraffes.cfdg +122 -0
  466. data/lib/image_paradise/cfdg/the_eye.cfdg +16 -0
  467. data/lib/image_paradise/cfdg/the_go_game.cfdg +81 -0
  468. data/lib/image_paradise/cfdg/the_secret.cfdg +52 -0
  469. data/lib/image_paradise/cfdg/the_third_eye.cfdg +42 -0
  470. data/lib/image_paradise/cfdg/thingy.cfdg +13 -0
  471. data/lib/image_paradise/cfdg/thorns.cfdg +26 -0
  472. data/lib/image_paradise/cfdg/too_many_notes.cfdg +155 -0
  473. data/lib/image_paradise/cfdg/top_down_plant_root.cfdg +43 -0
  474. data/lib/image_paradise/cfdg/top_view_tree.cfdg +79 -0
  475. data/lib/image_paradise/cfdg/transparent_heart.cfdg +31 -0
  476. data/lib/image_paradise/cfdg/tree.cfdg +68 -0
  477. data/lib/image_paradise/cfdg/tree_number_5.cfdg +28 -0
  478. data/lib/image_paradise/cfdg/tree_retro.cfdg +46 -0
  479. data/lib/image_paradise/cfdg/tree_spiral.cfdg +52 -0
  480. data/lib/image_paradise/cfdg/treematic.cfdg +42 -0
  481. data/lib/image_paradise/cfdg/tri_arc.cfdg +16 -0
  482. data/lib/image_paradise/cfdg/tri_squares.cfdg +7 -0
  483. data/lib/image_paradise/cfdg/tube_map.cfdg +112 -0
  484. data/lib/image_paradise/cfdg/turing_morphogenesis.cfdg +788 -0
  485. data/lib/image_paradise/cfdg/twisted_hex_grid.cfdg +26 -0
  486. data/lib/image_paradise/cfdg/twisty_triangel.cfdg +79 -0
  487. data/lib/image_paradise/cfdg/twizeeded.cfdg +19 -0
  488. data/lib/image_paradise/cfdg/uncontrolled_fungus.cfdg +36 -0
  489. data/lib/image_paradise/cfdg/underground.cfdg +72 -0
  490. data/lib/image_paradise/cfdg/underwater.cfdg +75 -0
  491. data/lib/image_paradise/cfdg/unicorn_boi.cfdg +20 -0
  492. data/lib/image_paradise/cfdg/unification_sign.cfdg +52 -0
  493. data/lib/image_paradise/cfdg/urban_connections.cfdg +44 -0
  494. data/lib/image_paradise/cfdg/us_flag.cfdg +109 -0
  495. data/lib/image_paradise/cfdg/v_null.cfdg +89 -0
  496. data/lib/image_paradise/cfdg/very_simple_flower.cfdg +45 -0
  497. data/lib/image_paradise/cfdg/very_simple_hexagon.cfdg +16 -0
  498. data/lib/image_paradise/cfdg/very_simple_octagon.cfg +13 -0
  499. data/lib/image_paradise/cfdg/vigorous_vine.cfdg +45 -0
  500. data/lib/image_paradise/cfdg/ville_topview.cfdg +70 -0
  501. data/lib/image_paradise/cfdg/vine.cfdg +176 -0
  502. data/lib/image_paradise/cfdg/vinyl.cfdg +12 -0
  503. data/lib/image_paradise/cfdg/violet_ribbons.cfdg +45 -0
  504. data/lib/image_paradise/cfdg/voronoi_2.cfdg +61 -0
  505. data/lib/image_paradise/cfdg/wald.cfdg +46 -0
  506. data/lib/image_paradise/cfdg/water_ink.cfdg +71 -0
  507. data/lib/image_paradise/cfdg/water_monster.cfdg +33 -0
  508. data/lib/image_paradise/cfdg/web.cfdg +53 -0
  509. data/lib/image_paradise/cfdg/weighting_demo.cfdg +16 -0
  510. data/lib/image_paradise/cfdg/weird_spots.cfdg +15 -0
  511. data/lib/image_paradise/cfdg/welcome.cfdg +109 -0
  512. data/lib/image_paradise/cfdg/where_do_you_want_to_go_today.cfdg +632 -0
  513. data/lib/image_paradise/cfdg/where_is_the_head.cfdg +28 -0
  514. data/lib/image_paradise/cfdg/where_to_go.cfdg +62 -0
  515. data/lib/image_paradise/cfdg/willow.cfdg +39 -0
  516. data/lib/image_paradise/cfdg/witch_poison.cfdg +58 -0
  517. data/lib/image_paradise/cfdg/wooden_floor.cfdg +95 -0
  518. data/lib/image_paradise/cfdg/writhing.cfdg +15 -0
  519. data/lib/image_paradise/cfdg/wrooom_cars.cfdg +124 -0
  520. data/lib/image_paradise/cfdg/xmas_code.cfdg +101 -0
  521. data/lib/image_paradise/cfdg/xmas_tree.cfdg +70 -0
  522. data/lib/image_paradise/cfdg/yellow_cactus.cfdg +52 -0
  523. data/lib/image_paradise/cfdg/yet_another_explosion.cfdg +46 -0
  524. data/lib/image_paradise/cfdg/yin_yang_taijitu_pattern.cfdg +44 -0
  525. data/lib/image_paradise/cfdg/yog.cfdg +27 -0
  526. data/lib/image_paradise/cfdg/yurbanis_m.cfdg +27 -0
  527. data/lib/image_paradise/cfdg/zen_tree.cfdg +79 -0
  528. data/lib/image_paradise/cfdg/ziggy_flowers.cfdg +44 -0
  529. data/lib/image_paradise/cfdg/zodiac.cfdg +43 -0
  530. data/lib/image_paradise/chunky_png/chunky_png.rb +54 -0
  531. data/lib/image_paradise/colours/colours.rb +46 -0
  532. data/lib/image_paradise/confree_generator/confree_generator.rb +791 -0
  533. data/lib/image_paradise/confree_generator/constants.rb +93 -0
  534. data/lib/image_paradise/constants/constants.rb +50 -0
  535. data/lib/image_paradise/constants/image_file_types.rb +26 -0
  536. data/lib/image_paradise/crop/crop.rb +429 -0
  537. data/lib/image_paradise/gm_support.rb +34 -0
  538. data/lib/image_paradise/graphs/accumulator_bar.rb +29 -0
  539. data/lib/image_paradise/graphs/area.rb +64 -0
  540. data/lib/image_paradise/graphs/bar.rb +117 -0
  541. data/lib/image_paradise/graphs/bar_conversion.rb +53 -0
  542. data/lib/image_paradise/graphs/base.rb +1392 -0
  543. data/lib/image_paradise/graphs/bezier.rb +45 -0
  544. data/lib/image_paradise/graphs/bullet.rb +115 -0
  545. data/lib/image_paradise/graphs/deprecated.rb +42 -0
  546. data/lib/image_paradise/graphs/dot.rb +129 -0
  547. data/lib/image_paradise/graphs/line.rb +328 -0
  548. data/lib/image_paradise/graphs/mini/bar.rb +42 -0
  549. data/lib/image_paradise/graphs/mini/legend.rb +109 -0
  550. data/lib/image_paradise/graphs/mini/pie.rb +42 -0
  551. data/lib/image_paradise/graphs/mini/side_bar.rb +41 -0
  552. data/lib/image_paradise/graphs/net.rb +133 -0
  553. data/lib/image_paradise/graphs/photo_bar.rb +106 -0
  554. data/lib/image_paradise/graphs/pie.rb +139 -0
  555. data/lib/image_paradise/graphs/scatter.rb +264 -0
  556. data/lib/image_paradise/graphs/scene.rb +216 -0
  557. data/lib/image_paradise/graphs/side_bar.rb +144 -0
  558. data/lib/image_paradise/graphs/side_stacked_bar.rb +116 -0
  559. data/lib/image_paradise/graphs/spider.rb +163 -0
  560. data/lib/image_paradise/graphs/stacked_area.rb +73 -0
  561. data/lib/image_paradise/graphs/stacked_bar.rb +68 -0
  562. data/lib/image_paradise/graphs/stacked_mixin.rb +30 -0
  563. data/lib/image_paradise/graphs/themes.rb +117 -0
  564. data/lib/image_paradise/graphs.rb +36 -0
  565. data/lib/image_paradise/graphviz/README.md +2 -0
  566. data/lib/image_paradise/graphviz/generate_graphviz_image.rb +276 -0
  567. data/lib/image_paradise/gui/gtk3/cfdg_widget/cfdg_widget.rb +1452 -0
  568. data/lib/image_paradise/gui/gtk3/cfdg_widget/connect_skeleton.rb +46 -0
  569. data/lib/image_paradise/gui/gtk3/image_editor/connect_skeleton.rb +126 -0
  570. data/lib/image_paradise/gui/gtk3/image_editor/image_editor.rb +2003 -0
  571. data/lib/image_paradise/identify.rb +184 -0
  572. data/lib/image_paradise/image_paradise.rb +153 -0
  573. data/lib/image_paradise/image_to_ascii/image_to_ascii.rb +187 -0
  574. data/lib/image_paradise/image_to_pdf/image_to_pdf.rb +99 -0
  575. data/lib/image_paradise/label/README.md +2 -0
  576. data/lib/image_paradise/label/simple_label.rb +206 -0
  577. data/lib/image_paradise/logo/IMGUR_LOGO.png +0 -0
  578. data/lib/image_paradise/project/project.rb +30 -0
  579. data/lib/image_paradise/requires/common_base_requires.rb +17 -0
  580. data/lib/image_paradise/requires/require_colours.rb +9 -0
  581. data/lib/image_paradise/requires/require_gtk_components.rb +8 -0
  582. data/lib/image_paradise/requires/require_image_to_ascii.rb +7 -0
  583. data/lib/image_paradise/requires/require_the_image_paradise_project.rb +42 -0
  584. data/lib/image_paradise/requires/require_toplevel_methods.rb +21 -0
  585. data/lib/image_paradise/rotate/README.md +2 -0
  586. data/lib/image_paradise/rotate/rotate.rb +124 -0
  587. data/lib/image_paradise/shell/interactive.rb +156 -0
  588. data/lib/image_paradise/svg/README.md +5 -0
  589. data/lib/image_paradise/svg/circle.rb +106 -0
  590. data/lib/image_paradise/svg/feature.rb +48 -0
  591. data/lib/image_paradise/svg/rectangle.rb +154 -0
  592. data/lib/image_paradise/svg/svg.rb +102 -0
  593. data/lib/image_paradise/toplevel_methods/add_black_border_to_this_image.rb +94 -0
  594. data/lib/image_paradise/toplevel_methods/create_animated_gif.rb +49 -0
  595. data/lib/image_paradise/toplevel_methods/crop.rb +29 -0
  596. data/lib/image_paradise/toplevel_methods/e.rb +16 -0
  597. data/lib/image_paradise/toplevel_methods/esystem.rb +19 -0
  598. data/lib/image_paradise/toplevel_methods/extract_text_from_this_image.rb +56 -0
  599. data/lib/image_paradise/toplevel_methods/file_related_code.rb +48 -0
  600. data/lib/image_paradise/toplevel_methods/flip_image_left_right.rb +59 -0
  601. data/lib/image_paradise/toplevel_methods/font_related_methods.rb +62 -0
  602. data/lib/image_paradise/toplevel_methods/greyscale_this_image.rb +76 -0
  603. data/lib/image_paradise/toplevel_methods/gui.rb +19 -0
  604. data/lib/image_paradise/toplevel_methods/help.rb +30 -0
  605. data/lib/image_paradise/toplevel_methods/interlace.rb +33 -0
  606. data/lib/image_paradise/toplevel_methods/is_an_image_file.rb +18 -0
  607. data/lib/image_paradise/toplevel_methods/make_this_image_transparent.rb +40 -0
  608. data/lib/image_paradise/toplevel_methods/menu.rb +110 -0
  609. data/lib/image_paradise/toplevel_methods/merge_these_images.rb +49 -0
  610. data/lib/image_paradise/toplevel_methods/mirror_image.rb +28 -0
  611. data/lib/image_paradise/toplevel_methods/misc.rb +1407 -0
  612. data/lib/image_paradise/toplevel_methods/negate.rb +36 -0
  613. data/lib/image_paradise/toplevel_methods/png_to_svg.rb +38 -0
  614. data/lib/image_paradise/toplevel_methods/quality.rb +34 -0
  615. data/lib/image_paradise/toplevel_methods/resized.rb +43 -0
  616. data/lib/image_paradise/toplevel_methods/roebe.rb +323 -0
  617. data/lib/image_paradise/toplevel_methods/thumbnail.rb +54 -0
  618. data/lib/image_paradise/toplevel_methods/to_png.rb +106 -0
  619. data/lib/image_paradise/toplevel_methods/wallpaper.rb +51 -0
  620. data/lib/image_paradise/toplevel_methods/write_this_text.rb +89 -0
  621. data/lib/image_paradise/utility_scripts/black_white.rb +92 -0
  622. data/lib/image_paradise/utility_scripts/create_new_image.rb +110 -0
  623. data/lib/image_paradise/utility_scripts/image_border.rb +226 -0
  624. data/lib/image_paradise/utility_scripts/image_gallery/image_gallery.rb +283 -0
  625. data/lib/image_paradise/utility_scripts/image_manipulations.rb +316 -0
  626. data/lib/image_paradise/utility_scripts/magic_card_border.rb +215 -0
  627. data/lib/image_paradise/utility_scripts/optimizer.rb +452 -0
  628. data/lib/image_paradise/utility_scripts/random_text_to_image.rb +364 -0
  629. data/lib/image_paradise/utility_scripts/text_on_image.rb +311 -0
  630. data/lib/image_paradise/utility_scripts/to_gif.rb +93 -0
  631. data/lib/image_paradise/utility_scripts/to_jpg.rb +82 -0
  632. data/lib/image_paradise/version/version.rb +19 -0
  633. data/lib/image_paradise/www/cfdg.cgi +25 -0
  634. data/lib/image_paradise/www/imagemagick/imagemagick.cgi +266 -0
  635. data/lib/image_paradise/yaml/README.md +2 -0
  636. data/lib/image_paradise/yaml/arc.yml +0 -0
  637. data/lib/image_paradise/yaml/circle.yml +6 -0
  638. data/lib/image_paradise/yaml/rectangle.yml +6 -0
  639. data/lib/image_paradise.rb +5 -0
  640. data/test/16x16_red_square_image_for_testing.png +0 -0
  641. data/test/misc/README.md +3 -0
  642. data/test/misc/testing_filling_up_with_circles.rb +65 -0
  643. data/test/testing_confree_generator.rb +8 -0
  644. data/test/testing_crop.rb +19 -0
  645. data/test/testing_image_magick_commands.rb +39 -0
  646. data/test/testing_image_paradise.rb +49 -0
  647. data/test/testing_the_svg_component.html +261 -0
  648. data/test/testing_the_svg_component.rb +106 -0
  649. metadata +760 -0
@@ -0,0 +1,93 @@
1
+ #!/usr/bin/ruby -w
2
+ # Encoding: UTF-8
3
+ # frozen_string_literal: true
4
+ # =========================================================================== #
5
+ # === ImageParadise::ToGif
6
+ #
7
+ # This class will simply convert an image file to .gif.
8
+ #
9
+ # Usage example:
10
+ #
11
+ # ImageParadise::ToGif.new(ARGV)
12
+ #
13
+ # =========================================================================== #
14
+ # require 'image_paradise/utility_scripts/to_gif.rb'
15
+ # =========================================================================== #
16
+ require 'image_paradise/base/base.rb'
17
+
18
+ module ImageParadise
19
+
20
+ class ToGif < ::ImageParadise::Base # === ImageParadise::ToGif
21
+
22
+ require 'image_paradise/utility_scripts/optimizer.rb'
23
+
24
+ # ========================================================================= #
25
+ # === initialize
26
+ # ========================================================================= #
27
+ def initialize(
28
+ i = nil,
29
+ run_already = true
30
+ )
31
+ reset
32
+ set_input(i)
33
+ run if run_already
34
+ end
35
+
36
+ # ========================================================================= #
37
+ # === reset (reset tag)
38
+ # ========================================================================= #
39
+ def reset
40
+ end
41
+
42
+ # ========================================================================= #
43
+ # === set_input
44
+ # ========================================================================= #
45
+ def set_input(i = '')
46
+ i = i.first if i.is_a? Array
47
+ i = i.to_s.dup if i
48
+ @input = i
49
+ end
50
+
51
+ # ========================================================================= #
52
+ # === run_everything
53
+ #
54
+ # This method contains the main logic of the file.
55
+ # ========================================================================= #
56
+ def run_everything
57
+ opn; e 'Next converting '+simp(input?)+' to '+sfile(store_where?)
58
+ _ = 'convert '+input?+' '+store_where?
59
+ esystem _
60
+ if File.exist? store_where?
61
+ opn; e 'We will next try to optimize '+sfile(store_where?)
62
+ opn; e 'The old file size is: '+sfancy(File.size(store_where?).to_s)
63
+ ImageParadise::Optimizer[store_where?]
64
+ opn; e 'The new file size is: '+sfancy(File.size(store_where?).to_s)
65
+ end
66
+ end
67
+
68
+ # ========================================================================= #
69
+ # === input?
70
+ # ========================================================================= #
71
+ def input?
72
+ @input
73
+ end
74
+
75
+ # ========================================================================= #
76
+ # === store_where?
77
+ # ========================================================================= #
78
+ def store_where?
79
+ input?.gsub(File.extname(input?),'')+'.gif'
80
+ end
81
+
82
+ # ========================================================================= #
83
+ # === run
84
+ # ========================================================================= #
85
+ def run # (run tag)
86
+ run_everything
87
+ end
88
+
89
+ end; end
90
+
91
+ if __FILE__ == $PROGRAM_NAME
92
+ ImageParadise::ToGif.new(ARGV)
93
+ end # to_gif
@@ -0,0 +1,82 @@
1
+ #!/usr/bin/ruby -w
2
+ # Encoding: UTF-8
3
+ # frozen_string_literal: true
4
+ # =========================================================================== #
5
+ # === ImageParadise::ToJpg
6
+ #
7
+ # This class will simply convert an image file to .jpg format.
8
+ #
9
+ # Usage example:
10
+ #
11
+ # ImageParadise::ToJpg.new(ARGV)
12
+ #
13
+ # =========================================================================== #
14
+ # require 'image_paradise/to_jpg.rb'
15
+ # ImageParadise.:ToJpg.new(ARGV)
16
+ # =========================================================================== #
17
+ require 'image_paradise/base/base.rb'
18
+
19
+ module ImageParadise
20
+
21
+ class ToJpg < ::ImageParadise::Base # === ImageParadise::ToJpg
22
+
23
+ # ========================================================================= #
24
+ # === initialize
25
+ # ========================================================================= #
26
+ def initialize(
27
+ i = ARGV,
28
+ run_already = true
29
+ )
30
+ reset
31
+ set_commandline_arguments(i)
32
+ run if run_already
33
+ end
34
+
35
+ # ========================================================================= #
36
+ # === reset (reset tag)
37
+ # ========================================================================= #
38
+ def reset
39
+ infer_the_namespace
40
+ end
41
+
42
+ # ========================================================================= #
43
+ # === return_where_to_store_this
44
+ # ========================================================================= #
45
+ def return_where_to_store_this(i)
46
+ i.gsub(File.extname(i),'')+
47
+ '.jpg' # Store as .jpg, logically.
48
+ end
49
+
50
+ # ========================================================================= #
51
+ # === run_everything
52
+ # ========================================================================= #
53
+ def run_everything
54
+ commandline_arguments?.each {|this_file|
55
+ store_where = return_where_to_store_this(this_file)
56
+ opnn; e 'Next converting '+simp(this_file)+' to '+sfile(store_where)
57
+ _ = 'convert '+this_file+' '+store_where
58
+ esystem _
59
+ }
60
+ end
61
+
62
+ # ========================================================================= #
63
+ # === run (run tag)
64
+ # ========================================================================= #
65
+ def run
66
+ run_everything
67
+ end
68
+
69
+ end
70
+
71
+ # =========================================================================== #
72
+ # === ImageParadise.to_jpg
73
+ # =========================================================================== #
74
+ def self.to_jpg(i = ARGV)
75
+ ImageParadise::ToJpg.new(i)
76
+ end
77
+
78
+ end
79
+
80
+ if __FILE__ == $PROGRAM_NAME
81
+ ImageParadise::ToJpg.new(ARGV)
82
+ end # tojpg
@@ -0,0 +1,19 @@
1
+ #!/usr/bin/ruby -w
2
+ # Encoding: UTF-8
3
+ # frozen_string_literal: true
4
+ # =========================================================================== #
5
+ # require 'image_paradise/version/version.rb'
6
+ # =========================================================================== #
7
+ module ImageParadise
8
+
9
+ # ========================================================================= #
10
+ # === VERSION
11
+ # ========================================================================= #
12
+ VERSION = '0.4.8'
13
+
14
+ # ========================================================================= #
15
+ # === LAST_UPDATE
16
+ # ========================================================================= #
17
+ LAST_UPDATE = '20.02.2023'
18
+
19
+ end
@@ -0,0 +1,25 @@
1
+ #!/usr/bin/ruby -w
2
+ # Encoding: UTF-8
3
+ # frozen_string_literal: true
4
+ # =========================================================================== #
5
+ # http://localhost/DATA/PROGRAMMING_LANGUAGES/RUBY/src/image_paradise/lib/image_paradise/www/cfdg.cgi
6
+ # =========================================================================== #
7
+ require 'cyberweb/autoinclude'
8
+
9
+ english {
10
+ title 'cfdg'
11
+ favicon 'PC/RUBY/RUBY_FAVICON.png'
12
+ css_style :template1
13
+ body_css_class 'mar0px s12px padt4px marpad2px VERDANAs'
14
+ body_css_style 'background-color: #d3d2d1;'
15
+ font_size 'def'
16
+
17
+ doc {
18
+ h2 'Available .cfdg files:'
19
+ Dir['/Depot/Images/*png'].each {|file|
20
+ h3(file,'marl2em')
21
+ id_to_use = File.basename(file).downcase.delete_suffix(File.extname(file))
22
+ ee '<img src="/images/'+File.basename(file)+'" id="'+id_to_use+'" class="bblack2"'\
23
+ ' style="margin-right: 2em; margin-left: 2em">'
24
+ }
25
+ }}
@@ -0,0 +1,266 @@
1
+ #!/usr/bin/ruby -w
2
+ # Encoding: UTF-8
3
+ # frozen_string_literal: true
4
+ # =========================================================================== #
5
+ # http://localhost/DATA/PROGRAMMING_LANGUAGES/RUBY/src/image_paradise/lib/image_paradise/www/imagemagick/imagemagick.cgi
6
+ # =========================================================================== #
7
+ require 'cyberweb/autoinclude'
8
+
9
+ german {
10
+ css_style :template1
11
+ favicon 'PC/IMAGEMAGICK/IMAGEMAGICK_FAVICON.jpg'
12
+ body_css_class 's12px padt4px marpad2px VERDANAs'
13
+ body_css_style 'background-color: #d3d2d1;'
14
+ font_size 'default'
15
+
16
+ YDOT = sg(:yel_dot,'marr4px bblack1')
17
+ div('mart0px') {
18
+ # ========================================================================= #
19
+ # CONVERT TAG - ist bei Imagemagick dabei
20
+ # ========================================================================= #
21
+ div('FS1_1em pad1em mar2px bblack1','imagemagick','min-height:40em'){
22
+ CONVERT_CSS = 'BG_Black1 FW6 mars8px mediumseagreen s2px'
23
+ h1 'ImageMagick / RImageMagick','GOTHIC martb1px s0_5em midnightblue FI','convert'
24
+ h1 'Convert','FI firebrick FL120 marb0px mart1px wid92 s1em','CONVERT'
25
+ br
26
+ PARAGRAPH_BG_COLOUR+'border-left:2px solid darkblue;border-top:2px solid darkblue'
27
+ e 'ist das wichtigste KonsolenTool bezüglich Grafik und
28
+ Linux schlechthin.
29
+ (<i> Aus Lizengründen konvertierte es früher "normalerweise" nicht
30
+ nach .gif; mittlerweile hat ImageMagick jedoch kein Problem mehr
31
+ mit .gif Dateien </i>)'
32
+ br
33
+ abr 'https://www.imagemagick.org/script/convert.php',
34
+ content: 'Die API Dokumentation zu convert findet man hier.',
35
+ css_class: 'BO mars2em slateblue'
36
+ br
37
+ e 'Für Optionen wie <b>-fill</b> kann man RGB angeben wie
38
+ zum Beispiel <b>rgb(255,255,255)</b>.'
39
+ br
40
+ e 'Um zu sehen, was convert kann, muss man es ausprobieren.';br
41
+ e 'Die <b>allgemeine Syntax</b> ist:'
42
+ br
43
+ e ' convert [ options ... ] input_file output_file ','s1em'
44
+ br
45
+ e 'Um eine jpg Datei in eine png Datei umzuwandeln nutzt man
46
+ diese Syntax hier:'
47
+ br
48
+ e ' convert DnD.jpg DnD.png',CONVERT_CSS
49
+ br
50
+ e 'Convert kann auch mehrere Bilder in <b>pdf</b> verwandeln
51
+ zum Beispiel:'
52
+ br
53
+ e ' convert '+INPUT_IMG+' y.jpg bla.pdf',CONVERT_CSS
54
+ e ' convert *.jpg /Depot/PDF/bla.pdf',CONVERT_CSS
55
+ e ' convert *.png /Depot/PDF/bla.pdf',CONVERT_CSS
56
+ br
57
+ e 'Folgende Anweisung verändert die Datei '+INPUT_IMG+' zu der
58
+ kleineren .png Datei '+OUTPUT_IMG+' (width:100px, height: 75px):'
59
+ br
60
+ e ' convert '+INPUT_IMG+' -scale geometry 75 '+OUTPUT_IMG,
61
+ 'FW6 s1em','',COL_1
62
+ br
63
+ e 'Generell legt man die Grösse eines Bildes mittels -size w x height fest,
64
+ zb -size 300x50'
65
+ br
66
+ e 'Bilder "addieren" kann man mittels <b>average</b>'
67
+ e ' convert -average '+INPUT_IMG+' test.gif','FW6 s1em','',COL_1
68
+ e 'und folgendes'
69
+ e ' convert -charcoal 3 '+INPUT_IMG+' '+OUTPUT_IMG,'FW6 s1em','',COL_1
70
+ e 'Führt einen <b>Kreide Effekt</b> ein.'
71
+ br
72
+ e 'Das Bild verliert fast alle Farben, und schaut wie eine Zeichnung
73
+ aus - siehe das Bild zur rechten Seite, wobei der Effekt generell
74
+ ziemlich stark ist.'
75
+ img 'DESIGNING/CHARCOAL.jpg','FLR bblack2 marb4px mars1em',
76
+ 'drag_CharcoalMod'
77
+ br
78
+ e 'Je höher der Wert bei charcoal ist, um so mehr charcoal
79
+ (<b>Holzkohle</b>) wird verwendet, das Bild wird also immer dünkler.'
80
+ br
81
+ e 'Noch ein charcoal Beispiel, dieses Mal ein reales Bild von einigen
82
+ Pflanzen, die ausserhalb meiner Wohnung wachsen.'
83
+ br
84
+ img 'HOME/28_APR_05_RegnetSonnenschein_charcoaled.jpg',
85
+ 'FLR bblack2 marb4px marr1em','drag_charcoal'
86
+ # ==================================================================== #
87
+ # ROT GRÜN BLAU
88
+ # ==================================================================== #
89
+ div('CR TAJ VAR wid85 mars2px bblack2 mart2em pad4px s8px',
90
+ 'background-color:#ffcb63'){
91
+ e 'Um Werte für '
92
+ s 'b','Rot ','Red bold'
93
+ s 'b','Grün ','DGreen'
94
+ e 'und '
95
+ s 'b','Blau ','Blue'
96
+ ebr ' festzulegen:'
97
+ e '10/20/30 heisst Rot = 10, Green = 20 Blau = 30. Erlaubt sind
98
+ auch Prozentangaben (10%).'
99
+ }
100
+ br
101
+ e 'Eine weitere nützliche Funktion von convert ist
102
+ die option <b>-colorize</b>. Dabei wird die Farbe jedes Pixel
103
+ mit einer angegeben Farbe vermischt.'
104
+ e ' convert -colorize 255 input.jpg output.jpg',CONVERT_CSS
105
+ br
106
+ e 'Erneut ein Beispiel mit colorize, aber dieses mal
107
+ nutzen wir die R,G,B Angabe:'
108
+ e ' convert -colorize 2,15,75 '+IMG1+' output.jpg',CONVERT_CSS
109
+ br
110
+ e 'Mittels der <b>Implode</b> Option scheint das Zentrum des
111
+ Bildes in ein schwarzes Loch gesaugt zu werden. Je höher, umso
112
+ grösser ist der Effekt, wobei meiner Meinung nach ein Wert
113
+ grösser 1 zu schlechten Ergebnissen führt: '
114
+ e ' convert -implode 1 '+INPUT_IMG+' '+OUTPUT_IMG,CONVERT_CSS
115
+ e 'Folgendes Bild zeigt das Zentrum einer Implosion, man
116
+ kann sehen, das alle Farblinien zu diesem Zentrum hinströmen.'
117
+ img 'PC/IMAGEMAGICK/IMPLODE.png','bblack1 marb3px marr1em'; br
118
+ e '<b>solarizing</b> findet statt, wenn ein <b>Bild-Negativ</b>
119
+ dem Licht während der Entwicklungsphase ausgesetzt ist.
120
+ (Jaja, alte Zeiten, heute funzt das mit Digitalkameras).
121
+ Das Eingabe Argument zeigt die Intensität an. Über diesen
122
+ Wert hinaus wird Solarize angewandt, entweder
123
+ absolut wert oder in Prozenten angegeben.';br
124
+ e 'Um ein <b>animiertes Bild</b> zu machen, kann man dies hier nutzen:'
125
+ e ' convert -loop 0 -delay 410 '+INPUT_IMG1+' '+INPUT_IMG2+' /Depot/X.gif',CONVERT_CSS
126
+ e ' convert -solarize 88 '+INPUT_IMG+' X.png',CONVERT_CSS
127
+ br
128
+ e 'Bilder verknüpfen geht zb so:'
129
+ convert_css ' convert +adjoin a.jpg b.jpg ab.jpg'
130
+ e '<b>spread</b> bewegt Pixel im Bild <b>zufällig</b>.
131
+ Das Argument ist der Radius UM ein Pixel, das verändert werden
132
+ soll, von dem ausgehend der nächste "Spread" erfolgt.
133
+ Mit anderen Worten, das Argument legt fest, wie sehr das Zielbild dem
134
+ Ursprungsbild ähnelt.
135
+ Gibt man zb 10 an, dann sind um Pixel X genau 10 Pixel so wie im
136
+ Originalbild, bevor erneut ein Pixel X ausgetauscht wird.'
137
+ # spread
138
+ convert_css ' convert -spread 44 '+INPUT_IMG+' X.png'
139
+ e 'Meiner Meinung nach ist spread eher unnütz.'
140
+ ebr 'Diese Optionen kann man übrigens zu einer Kette verknüpfen: '
141
+ convert_css ' convert -sample 25%x25% -spread 4 -charcoal 4 '+INPUT_IMG+' '+OUTPUT_IMG
142
+ anmerkung 'Zur Option -sample siehe diese Webseite:'
143
+ br
144
+ abr 'http://www.imagemagick.org/Usage/resize/#sample',
145
+ content: 'DEF'
146
+ ebr 'Um <b>thumbnails</b> zu erstellen, bzw die <b>Grösse zu ändern</b>, funktioniert
147
+ folgendes (das ist auch als cropping bekannt):'
148
+ br
149
+ convert_css ' convert -size 120x120 '+INPUT_IMG+" -resize 120x120 +profile '*' thumbnail.jpg "
150
+ convert_css ' convert '+INPUT_IMG+" -resize 50% '*' thumbnail.jpg "
151
+ convert_css ' convert SELINA_PERES.jpg -sample 25%x25% foo.jpg'
152
+ e 'Soweit mir bekannt kann man -size weglassen, und einfach
153
+ nur -resize verwenden.
154
+ Dann verkürzt sich das ganze zu:'
155
+ convert_css " convert -resize 75x75 "+INPUT_IMG+' '+OUTPUT_IMG
156
+ e 'Per default hält sich convert an die Image Grösse,
157
+ mittels ! kann man dies overrulen und explizit bestimmen, das ein
158
+ Image auf ein bestimmte Grösse resized werden soll:'
159
+ convert_css " convert -resize 75x75! "+INPUT_IMG+" "+OUTPUT_IMG
160
+ e 'Mittels folgendem Ruby script wandelt man alle
161
+ Bilddateien um'
162
+ convert_css 'x.each {|tmp| system("convert -resize 115x115! " + tmp +" "+ "OFF_"+tmp )}'
163
+ br
164
+ ebr 'Etwas <b>eleganter</b> geht das <b>Resizen</b> auch über
165
+ Prozentangaben (zumindest eleganter für Thumbnails):'
166
+ convert_css ' convert -sample 25%x25% '+INPUT_IMG+' out.jpg'
167
+ ebr 'Und um alle images im aktuellen Directory zu thumbnailen: '
168
+ convert_css 'for img in `ls *.jpg`'
169
+ convert_css ' do '
170
+ convert_css 'convert -sample 25%x25% IMG thumb-IMG'
171
+ convert_css 'done'
172
+ ebr 'Man kann die Bilder auch rotieren lassen wie zB: '
173
+ convert_css ' convert -rotate 90 input.jpg output.jpg'
174
+ e 'Mittels <b>-pointsize</b> kann man die Grösse des
175
+ Pinsels bestimmen.'
176
+ ebr 'Oben hast du das convert command kennengelernt.'
177
+ ebr 'Ein weiteres sehr wichtiges command ist identify, mittels dessen Hilfe
178
+ man Grafik Dateien analysieren kann: '
179
+ convert_css 'identify foo.bmp'
180
+ e 'Wie finde ich schnell heraus, wie gross eine .jpg Datei ist?
181
+ Genau wie oben auch. (img size, image size)'
182
+ br
183
+ convert_css 'identify '+INPUT_IMG
184
+ br
185
+ ebr 'convert führt umfangreiche Konversionen durch, Format, Grösse,
186
+ Auflösung, animierte GIFs, frames, und anderes. Wichtig ist delay:'
187
+ e 'delay 1x/100ths einer Sekunde, zeigt das nächste Image nach
188
+ einer Pause an. Delay 100 ist somit genau 1 Sekunde.
189
+ Hier ein Beispiel:'
190
+ convert_css 'convert -delay 100 '+INPUT_IMG+' y.png z.gif
191
+ <span class="Gold"># -> To gif</span>'
192
+ e 'Sehr nett ist die Option, bestimmte Teile eines Bildes
193
+ transparent zu machen:'
194
+ convert_css 'convert -transparent white '+INPUT_IMG+' '+OIMG
195
+ s2 '* composite:',CONVERT_CSS
196
+ e 'damit können wir den Blend Modus einstellen
197
+ (Plus, Minus, Over, Add, Subtract, Multiply ). '
198
+ e '* display: displays the images individually or as thumbnails. '
199
+ s2 "display 'vid:*.png' ",CONVERT_CSS
200
+ ebr '# generate thumbnails of all PNG images'
201
+ s2 '* identify:',CONVERT_CSS
202
+ e 'displays information of format, size, etc. and the number of seconds
203
+ it took to read and process the image. Sehr nützlich. '
204
+ e 'import: screen capture, that way we can show the final result to
205
+ our readers :)'
206
+ ebr 'Nun ein Beispiel mit composite, um dem Originalbild ein neues Bild
207
+ hinzuzufügen. '
208
+ e 'composite -gravity center -compose Copy new_fog.png canvas.png
209
+ comp_new_fog.png',CONVERT_CSS
210
+ e 'Was wirklich geil ist, ist die Möglichkeit, das man Bilder
211
+ erstellt mit Schriften drauf, ohne je Gimp starten zu müssen.'
212
+ e 'Da ich immer Probleme mit passender Schrift hatte, hier eine
213
+ Liste mit funzenden Fonts:'
214
+ e 'Bookman-DemiItalic, Courier, LucidaTypewriter, '
215
+ e 'Hier ein paar Beispiele:'
216
+ convert_css "convert -size 320x85 xc:transparent -font Bookman-DemiItalic
217
+ -pointsize 72 -draw \"text 25,60 'Magick'\" -channel RGBA -gaussian
218
+ 0x6 -fill darkred -stroke magenta -draw \"text 20,55 'Magick'\"
219
+ /Depot/bla.png"
220
+ convert_css "convert -size 300x85 xc:transparent -font Nimbus-Roman
221
+ -pointsize 88 -draw \"text 25,60 'Sarlem'\" -channel RGBA -gaussian
222
+ 0x6 -fill \"rgb(25,53,145)\" -stroke \"rgb(25,33,45)\" -draw \"text 20,55 'Sarlem'\"
223
+ /Depot/bla.png"
224
+ e "convert -size 340x165 xc:transparent -font Bookman-DemiItalic
225
+ -pointsize 32 -draw \"text 18,20 'Goldene Tafel'\" -channel RGBA -gaussian
226
+ 0x5 -fill \"rgb(254,153,1)\" -stroke \"rgb(55,33,45)\"
227
+ -draw \"text 12,25 'Goldene Tafel'\" /Depot/bla.png",CONVERT_CSS
228
+ e 'Grafiken kann man auch verkleinern.'
229
+ e 'Das ist hilfreich um zb einen kleinen Abschnitt auszuwählen.'
230
+ e 'Die Option Crop ermöglicht dies. Beispiel:'
231
+ convert_css ' convert rose: -crop 40x30+90+60 SARLEMKARTE.jpg'
232
+ div {
233
+ h2 'RMagick'
234
+ p {
235
+ e 'Die Ruby Implementation zu ImageMagick heisst RMagick.'
236
+ s2 'Die wird an anderer Stelle erläutert und zwar '
237
+ a 'rmagick', content: 'hier', css_class: 'BO'
238
+ }
239
+ div('s1em'){
240
+ abr 'http://raa.ruby-lang.org/project/rmagick/',
241
+ content: YDOT+'RMagick',
242
+ css_class: 'darkblue BO mars1em'
243
+ abr 'http://www.cit.gu.edu.au/~anthony/graphics/imagick6/crop/',
244
+ content: YDOT+'Crop Aktion',
245
+ css_class: 'darkblue BO mars1em'
246
+ }
247
+ }
248
+ }
249
+ div {
250
+ h2 'jp2a'
251
+ e 'Erstellt aus .jpg Dateien, ASCII. Hier einige Beispiele, zb
252
+ auf der Konsole ausprobieren:'
253
+ br
254
+ cmd 'convert http://www.google.com/intl/en/images/logo.gif jpg:- | jp2a -'
255
+ cmd 'convert http://tit4n.free.fr/images/boogibabes/bb_04_002.jpg jpg:- | jp2a -'
256
+ cmd 'convert RPG/ADOPTION/HORSE.png jpg:- | jp2a --width=76 -'
257
+ cmd 'convert RPG/ADOPTION/HORSE.png jpg:- | jp2a -'
258
+ }
259
+ div {
260
+ h2 'ImageMagick Links'
261
+ p('s1em') {
262
+ abr 'https://www.imagemagick.org/Usage/color_mods/',
263
+ content: :self
264
+ }
265
+ }
266
+ }}
@@ -0,0 +1,2 @@
1
+ This directory may include instructions, stored in yaml files,
2
+ as to how to draw certain shapes.
File without changes
@@ -0,0 +1,6 @@
1
+ circle:
2
+ fill_colour: lightgreen
3
+ strokewidth: 5
4
+ strokecolour: darkblue
5
+ resolution: 80x80
6
+ total_size: 525x525
@@ -0,0 +1,6 @@
1
+ rectangle:
2
+ fill_colour: steelblue
3
+ strokewidth: 5
4
+ strokecolour: darkblue
5
+ resolution: 150x50
6
+ round_rectangle: false # Flip this to false for a regular rectangle.
@@ -0,0 +1,5 @@
1
+ #!/usr/bin/ruby -w
2
+ # Encoding: UTF-8
3
+ # frozen_string_literal: true
4
+ # =========================================================================== #
5
+ require 'image_paradise/requires/require_the_image_paradise_project.rb'
@@ -0,0 +1,3 @@
1
+ This directory may contain mostly ad-hoc tests for drawing
2
+ things. These are not necessarily as important as the tests
3
+ stored one directory level below this directory here.
@@ -0,0 +1,65 @@
1
+ #!/usr/bin/ruby -w
2
+ # Encoding: UTF-8
3
+ # frozen_string_literal: true
4
+ # =========================================================================== #
5
+ require 'colours/autoinclude'
6
+ require 'open'
7
+ require 'image_paradise'
8
+
9
+ n = 19
10
+
11
+ WIDTH = 300
12
+ HEIGHT = 300
13
+
14
+ e
15
+ e Colours.rev+'Testing drawing circles next. Partitioning the '\
16
+ 'existing space available'
17
+ e 'via '+n.to_s+' slices.'
18
+ e
19
+ # =========================================================================== #
20
+ # We have an uneven number, so division will yield a fraction. So, if n is
21
+ # at 19, we need to put 19 circles. That means, we must divide the WIDTH
22
+ # by 19. This will be the desired diameter. Then, we divide this diameter
23
+ # by 2 to obtain the radius.
24
+ # =========================================================================== #
25
+ diameter = WIDTH / n.to_f
26
+ radius = diameter.to_f / 2
27
+ e
28
+ e ' Diameter '+steelblue(diameter.to_s)
29
+ e ' Radius '+steelblue(radius.to_s)
30
+ e
31
+ # =========================================================================== #
32
+ # Ceil up the results
33
+ # =========================================================================== #
34
+ diameter = diameter.ceil(2)
35
+ radius = radius.ceil(1)
36
+ # =========================================================================== #
37
+ # === OUTPUT_DIRECTORY
38
+ # =========================================================================== #
39
+ OUTPUT_DIRECTORY = '/home/x/Temp/'
40
+ cmd = 'convert -size 300x300 xc:white -stroke black -strokewidth 1 -stroke red -fill none'.dup
41
+ # =========================================================================== #
42
+ # Next, we must draw all n circles. This requires of us to a) specify
43
+ # the center of the circle, and b) knowing the diameter. When we have
44
+ # the diameter we can generate the next circle.
45
+ # =========================================================================== #
46
+ x1 = radius # This won't change.
47
+ y1 = 0-radius # This will change.
48
+ x2 = 0 # This won't change.
49
+ y2 = 0 # This also will change.
50
+ n.times {
51
+ y1 = y1.to_i + diameter.ceil(0)
52
+ x2 = x1 # This must always be the case.
53
+ y2 = y1+radius # y1+diameter
54
+ cmd << ' -draw "circle '+x1.to_s+','+y1.to_s+' '+x2.to_s+','+y2.to_s+'"'
55
+ e Colours.steelblue(cmd)+Colours.rev
56
+ }
57
+ # cmd << ' -draw "circle 50,50 60,50"'
58
+ # cmd << ' -draw "circle 50,100 50,110"'
59
+ #cmd << ' -stroke green -draw "circle 50,50 55,50"
60
+ cmd << ' '+OUTPUT_DIRECTORY+'circle.png'
61
+
62
+ e
63
+ ImageParadise.esystem(cmd)
64
+ e
65
+ Open.in_browser(OUTPUT_DIRECTORY+'circle.png')
@@ -0,0 +1,8 @@
1
+ #!/usr/bin/ruby -w
2
+ # Encoding: UTF-8
3
+ # frozen_string_literal: true
4
+ # =========================================================================== #
5
+ require 'image_paradise'
6
+ require 'colours/autoinclude'
7
+
8
+ e 'Now testing the project called '+sfancy('image_paradise')+'.'
@@ -0,0 +1,19 @@
1
+ #!/usr/bin/ruby -w
2
+ # Encoding: UTF-8
3
+ # frozen_string_literal: true
4
+ # =========================================================================== #
5
+ require 'fileutils'
6
+ require 'image_paradise'
7
+ require 'colours/autoinclude'
8
+
9
+ e 'Now testing the project called '+sfancy('image_paradise')+', '\
10
+ 'the crop() functionality.'
11
+
12
+ image_file = '/Depot/j/test.png'
13
+ FileUtils.cp('/home/x/DATA/IMG/NJOY/Cute_Biker.png', image_file)
14
+ e 'First testing ImageParadise::Crop[]'
15
+ ImageParadise::Crop[image_file]
16
+ e 'Next testing ImageParadise::Crop.new'
17
+ ImageParadise::Crop.new(image_file)
18
+ e 'Finally testing ImageParadise::Crop.crop'
19
+ ImageParadise::Crop.crop(image_file)
@@ -0,0 +1,39 @@
1
+ #!/usr/bin/ruby -w
2
+ # Encoding: UTF-8
3
+ # frozen_string_literal: true
4
+ # =========================================================================== #
5
+ require 'image_paradise'
6
+ require 'colours/autoinclude'
7
+
8
+ e
9
+ e "Next testing the project called `#{sfancy('image_paradise')}`."
10
+ e
11
+
12
+ USE_THIS_FILE = '/Depot/j/test.png'
13
+
14
+ Dir.chdir('/Depot/j/') # <- Directory must exist if you wish to run the tests here.
15
+
16
+ e 'Will put the images into '+sdir('/Depot/j')
17
+
18
+ image = ImageParadise::ImageManipulations.new(USE_THIS_FILE)
19
+ e image.identify # => "image.png PNG 500x500 500x500+0+0 8-bit DirectClass 236KB 0.010u 0:00.010\n"
20
+ e ImageParadise.identify(USE_THIS_FILE)
21
+ image.shrink '80%'
22
+ e image.dimensions # => { x: 250, y: 250 }
23
+ image.convert('thumbnail.png', quality: 80, crop: '250x250>') # => true
24
+
25
+ image = ImageParadise::ImageManipulations.new('multi-page.pdf')
26
+ image.filename_changed? # => false
27
+ image.manipulate!(format: "png", layer: 0) # => true
28
+ image.filename_changed? # => true
29
+ image.file # => "multi-page.png"
30
+
31
+ image = ImageParadise::ImageManipulations.new('multi-page.pdf')
32
+ image.manipulate!(format: "png") # => true
33
+ image.filename_changed? # => true
34
+
35
+ # on ImageMagick it returns all layers as a single file
36
+ image.file # => "multi-page-*.png"
37
+
38
+ # on GrapicksMagick it returns only the fist layer
39
+ image.file # => "multi-page.png"