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.
- checksums.yaml +7 -0
- data/LICENSE.md +38 -0
- data/README.md +928 -0
- data/USAGE.md +10 -0
- data/bin/black_white +10 -0
- data/bin/confree_generator +7 -0
- data/bin/create_new_image +7 -0
- data/bin/display_text_from_this_image +7 -0
- data/bin/draw_as_specified_from_the_yaml_file +7 -0
- data/bin/embed_the_filename_into_this_image +7 -0
- data/bin/image_paradise +7 -0
- data/bin/image_paradise_shell +7 -0
- data/bin/image_to_ascii +54 -0
- data/bin/image_to_pdf +7 -0
- data/bin/imageparadise_img2pdf +12 -0
- data/bin/img_text +14 -0
- data/bin/interlace +7 -0
- data/bin/jpg_to_pdf +12 -0
- data/bin/magic_card_border +8 -0
- data/bin/make_this_image_transparent +7 -0
- data/bin/morph_these_images +7 -0
- data/bin/optimize_this_image +7 -0
- data/bin/quality +7 -0
- data/bin/resize_by_percent +10 -0
- data/bin/rotate_left +7 -0
- data/bin/rotate_right +7 -0
- data/bin/round_the_corner +7 -0
- data/bin/ruby_montage +7 -0
- data/bin/transparent +15 -0
- data/doc/README.gen +871 -0
- data/doc/todo/TODO_FOR_THE_GTK_GUI.md +9 -0
- data/doc/todo/TODO_FOR_THE_IMAGE_PARADISE_PROJECT.md +22 -0
- data/doc/todo/TODO_WORK_THROUGH_THESE_LINKS.md +3 -0
- data/doc/todo/todo_for_the_libui_gui.md +4 -0
- data/image_paradise.gemspec +46 -0
- data/images/IMAGE_PARADISE_LOGO.png +0 -0
- data/lib/image_paradise/base/base.rb +293 -0
- data/lib/image_paradise/cfdg/1dca_pattern.cfdg +48 -0
- data/lib/image_paradise/cfdg/3d_coloured_cube.cfdg +95 -0
- data/lib/image_paradise/cfdg/a_3D_spiral.cfdg +40 -0
- data/lib/image_paradise/cfdg/a_chaotic_city.cfdg +156 -0
- data/lib/image_paradise/cfdg/a_coloured_red.cfdg +21 -0
- data/lib/image_paradise/cfdg/a_daisy_flower.cfdg +66 -0
- data/lib/image_paradise/cfdg/a_decorated_window.cfdg +74 -0
- data/lib/image_paradise/cfdg/a_human_profile.cfdg +303 -0
- data/lib/image_paradise/cfdg/a_lost_heart.cfdg +28 -0
- data/lib/image_paradise/cfdg/a_plant_root.cfdg +26 -0
- data/lib/image_paradise/cfdg/a_rather_realistic_forest.cfdg +29 -0
- data/lib/image_paradise/cfdg/a_shoreline_next_to_a_forest.cfdg +127 -0
- data/lib/image_paradise/cfdg/a_simple_mini_brain.cfdg +17 -0
- data/lib/image_paradise/cfdg/a_simple_star.cfdg +22 -0
- data/lib/image_paradise/cfdg/adorned_tree.cfdg +58 -0
- data/lib/image_paradise/cfdg/adsorption.cfdg +19 -0
- data/lib/image_paradise/cfdg/alfabet_free.cfdg +346 -0
- data/lib/image_paradise/cfdg/alfreebet.cfdg +229 -0
- data/lib/image_paradise/cfdg/algal_flora.cfdg +25 -0
- data/lib/image_paradise/cfdg/alien_eyeball.cfdg +15 -0
- data/lib/image_paradise/cfdg/alien_flower.cfdg +35 -0
- data/lib/image_paradise/cfdg/alphabet_circles.cfdg +38 -0
- data/lib/image_paradise/cfdg/alveolo.cfdg +38 -0
- data/lib/image_paradise/cfdg/an_icosahedron.cfdg +134 -0
- data/lib/image_paradise/cfdg/an_oils_surface.cfdg +48 -0
- data/lib/image_paradise/cfdg/ancient_map.cfdg +30 -0
- data/lib/image_paradise/cfdg/ancient_scripts_tile.cfdg +96 -0
- data/lib/image_paradise/cfdg/angelfish.cfdg +58 -0
- data/lib/image_paradise/cfdg/angry_yarn.cfdg +82 -0
- data/lib/image_paradise/cfdg/apple_tree_small.cfdg +46 -0
- data/lib/image_paradise/cfdg/aqua_star.cfdg +27 -0
- data/lib/image_paradise/cfdg/army_explosion.cfdg +25 -0
- data/lib/image_paradise/cfdg/arrows_in_quadcity.cfdg +143 -0
- data/lib/image_paradise/cfdg/artificial_intelligence.cfdg +41 -0
- data/lib/image_paradise/cfdg/askew.cfdg +27 -0
- data/lib/image_paradise/cfdg/audio_diagram_waves.cfdg +54 -0
- data/lib/image_paradise/cfdg/autumn_fractal.cfdg +39 -0
- data/lib/image_paradise/cfdg/baignoire.cfdg +33 -0
- data/lib/image_paradise/cfdg/barcode.cfdg +781 -0
- data/lib/image_paradise/cfdg/basic_polygon_shapes.cfdg +311 -0
- data/lib/image_paradise/cfdg/basic_spreaders.cfdg +52 -0
- data/lib/image_paradise/cfdg/basic_square.cfdg +8 -0
- data/lib/image_paradise/cfdg/bats_hiding_in_foliage.cfdg +19 -0
- data/lib/image_paradise/cfdg/bees.cfdg +61 -0
- data/lib/image_paradise/cfdg/bent_squares.cfdg +46 -0
- data/lib/image_paradise/cfdg/benzo_dreaming.cfdg +54 -0
- data/lib/image_paradise/cfdg/beta_bet.cfdg +645 -0
- data/lib/image_paradise/cfdg/big_bang_theory.cfdg +31 -0
- data/lib/image_paradise/cfdg/big_pacman.cfdg +70 -0
- data/lib/image_paradise/cfdg/bigger_tree.cfdg +64 -0
- data/lib/image_paradise/cfdg/binary_connection.cfdg +34 -0
- data/lib/image_paradise/cfdg/birch_line.cfdg +57 -0
- data/lib/image_paradise/cfdg/blacksmith_masterpiece.cfdg +3 -0
- data/lib/image_paradise/cfdg/blocked_rectangles.cfdg +23 -0
- data/lib/image_paradise/cfdg/blood_tubes.cfdg +45 -0
- data/lib/image_paradise/cfdg/bloom.cfdg +23 -0
- data/lib/image_paradise/cfdg/blown_glass_spheres.cfdg +30 -0
- data/lib/image_paradise/cfdg/blue_daisies_in_detail.cfdg +101 -0
- data/lib/image_paradise/cfdg/blue_galaxy.cfdg +20 -0
- data/lib/image_paradise/cfdg/blue_moon.cfdg +36 -0
- data/lib/image_paradise/cfdg/boa_feathers.cfdg +53 -0
- data/lib/image_paradise/cfdg/bomb.cfdg +75 -0
- data/lib/image_paradise/cfdg/boxy_continent.cfdg +111 -0
- data/lib/image_paradise/cfdg/bright_coloured_neurons.cfdg +53 -0
- data/lib/image_paradise/cfdg/brightness_flower.cfdg +31 -0
- data/lib/image_paradise/cfdg/btp_71_beautiful_coloured_lines.cfdg +85 -0
- data/lib/image_paradise/cfdg/btp_73.cfdg +76 -0
- data/lib/image_paradise/cfdg/bubblesun.cfdg +46 -0
- data/lib/image_paradise/cfdg/burning_bush.cfdg +31 -0
- data/lib/image_paradise/cfdg/butterflies_in_the_moonlight.cfdg +55 -0
- data/lib/image_paradise/cfdg/cardiod_arc.cfdg +44 -0
- data/lib/image_paradise/cfdg/cardioid.cfdg +41 -0
- data/lib/image_paradise/cfdg/caros_wallpaper.cfdg +46 -0
- data/lib/image_paradise/cfdg/cartoony_face_arrays.cfdg +137 -0
- data/lib/image_paradise/cfdg/centerfold.cfdg +12 -0
- data/lib/image_paradise/cfdg/chain_link_fence.cfdg +31 -0
- data/lib/image_paradise/cfdg/chanukah.cfdg +109 -0
- data/lib/image_paradise/cfdg/chaos_red_sun.cfdg +42 -0
- data/lib/image_paradise/cfdg/chaotic_farn.cfdg +76 -0
- data/lib/image_paradise/cfdg/chaotic_fractal_shell.cfdg +41 -0
- data/lib/image_paradise/cfdg/charleston.cfdg +182 -0
- data/lib/image_paradise/cfdg/ciliasun.cfdg +109 -0
- data/lib/image_paradise/cfdg/cipal.cfdg +65 -0
- data/lib/image_paradise/cfdg/circuits.cfdg +176 -0
- data/lib/image_paradise/cfdg/city_map.cfdg +66 -0
- data/lib/image_paradise/cfdg/clifford_torus.cfdg +135 -0
- data/lib/image_paradise/cfdg/colonize_flat_colour_pattern.cfdg +14 -0
- data/lib/image_paradise/cfdg/colour_blind_squid.cfdg +30 -0
- data/lib/image_paradise/cfdg/colour_hole.cfdg +56 -0
- data/lib/image_paradise/cfdg/colour_wheel.cfdg +40 -0
- data/lib/image_paradise/cfdg/coloured_eyes.cfdg +40 -0
- data/lib/image_paradise/cfdg/coloured_forest.cfdg +133 -0
- data/lib/image_paradise/cfdg/coloured_tree.cfdg +50 -0
- data/lib/image_paradise/cfdg/colourful_lives.cfdg +123 -0
- data/lib/image_paradise/cfdg/colourful_neuronal_network.cfdg +32 -0
- data/lib/image_paradise/cfdg/complex_city_plans.cfdg +75 -0
- data/lib/image_paradise/cfdg/complex_kritworks.cfdg +75 -0
- data/lib/image_paradise/cfdg/complex_snowflake.cfdg +61 -0
- data/lib/image_paradise/cfdg/conspiracy_theory.cfdg +104 -0
- data/lib/image_paradise/cfdg/constellation_grid.cfdg +29 -0
- data/lib/image_paradise/cfdg/cool_caterpillar.cfdg +44 -0
- data/lib/image_paradise/cfdg/coolcubes.cfdg +70 -0
- data/lib/image_paradise/cfdg/crawler_battle.cfdg +93 -0
- data/lib/image_paradise/cfdg/crazy_octo.cfdg +48 -0
- data/lib/image_paradise/cfdg/cthulhu.cfdg +166 -0
- data/lib/image_paradise/cfdg/cubies.cfdg +43 -0
- data/lib/image_paradise/cfdg/cubist_sunset.cfdg +55 -0
- data/lib/image_paradise/cfdg/curled_tree.cfdg +37 -0
- data/lib/image_paradise/cfdg/curls.cfdg +45 -0
- data/lib/image_paradise/cfdg/curve_stiched.cfdg +59 -0
- data/lib/image_paradise/cfdg/curved_tubes.cfdg +20 -0
- data/lib/image_paradise/cfdg/cylinder_city.cfdg +27 -0
- data/lib/image_paradise/cfdg/cymbal.cfdg +38 -0
- data/lib/image_paradise/cfdg/d_mustard.cfdg +52 -0
- data/lib/image_paradise/cfdg/dance_party.cfdg +81 -0
- data/lib/image_paradise/cfdg/dance_party_and_background.cfdg +86 -0
- data/lib/image_paradise/cfdg/decreasing_aperture.cfdg +16 -0
- data/lib/image_paradise/cfdg/delicat_twist.cfdg +13 -0
- data/lib/image_paradise/cfdg/demo_text.cfdg +22 -0
- data/lib/image_paradise/cfdg/dennis_ritchie.cfdg +294 -0
- data/lib/image_paradise/cfdg/diablo.cfdg +47 -0
- data/lib/image_paradise/cfdg/different_flowers.cfdg +60 -0
- data/lib/image_paradise/cfdg/different_snowflakes_shapes.cfdg +149 -0
- data/lib/image_paradise/cfdg/dimensions.cfdg +33 -0
- data/lib/image_paradise/cfdg/domino_pieces.cfdg +166 -0
- data/lib/image_paradise/cfdg/dong.cfdg +41 -0
- data/lib/image_paradise/cfdg/drip_shape.cfdg +24 -0
- data/lib/image_paradise/cfdg/earthday2007b.cfdg +49 -0
- data/lib/image_paradise/cfdg/edera_circles.cfdg +55 -0
- data/lib/image_paradise/cfdg/eight_queens_problem.cfdg +85 -0
- data/lib/image_paradise/cfdg/electro_shock.cfdg +88 -0
- data/lib/image_paradise/cfdg/enter_the_force_field.cfdg +56 -0
- data/lib/image_paradise/cfdg/escargot_fleur.cfdg +98 -0
- data/lib/image_paradise/cfdg/european_city.cfdg +63 -0
- data/lib/image_paradise/cfdg/evil_eye.cfdg +74 -0
- data/lib/image_paradise/cfdg/evolving_coloured_spots.cfdg +47 -0
- data/lib/image_paradise/cfdg/excellines_nr2.cfdg +171 -0
- data/lib/image_paradise/cfdg/exoplanet_settlement.cfdg +117 -0
- data/lib/image_paradise/cfdg/explosion.cfdg +45 -0
- data/lib/image_paradise/cfdg/explosion_of_a_megabyte.cfdg +73 -0
- data/lib/image_paradise/cfdg/eye_of_katora.cfdg +20 -0
- data/lib/image_paradise/cfdg/family_tree.cfdg +169 -0
- data/lib/image_paradise/cfdg/feathers.cfdg +17 -0
- data/lib/image_paradise/cfdg/ferma_drawings.cfdg +23 -0
- data/lib/image_paradise/cfdg/fevrier.cfdg +66 -0
- data/lib/image_paradise/cfdg/fibmod.cfdg +25 -0
- data/lib/image_paradise/cfdg/field_of_boxes.cfdg +21 -0
- data/lib/image_paradise/cfdg/finetre.cfdg +34 -0
- data/lib/image_paradise/cfdg/fireblorks.cfdg +37 -0
- data/lib/image_paradise/cfdg/first_branch.cfdg +18 -0
- data/lib/image_paradise/cfdg/fish_with_coloured_bubbles.cfdg +77 -0
- data/lib/image_paradise/cfdg/fishing_lure.cfdg +30 -0
- data/lib/image_paradise/cfdg/flake.cfdg +20 -0
- data/lib/image_paradise/cfdg/flaming_spiro.cfdg +10 -0
- data/lib/image_paradise/cfdg/fleshflower.cfdg +25 -0
- data/lib/image_paradise/cfdg/flourescent_fish_btp.cfdg +48 -0
- data/lib/image_paradise/cfdg/flow_control_shape.cfdg +45 -0
- data/lib/image_paradise/cfdg/flower_galaxy.cfdg +57 -0
- data/lib/image_paradise/cfdg/flower_house.cfdg +115 -0
- data/lib/image_paradise/cfdg/flower_stories.cfdg +136 -0
- data/lib/image_paradise/cfdg/fluctuating_heart.cfdg +87 -0
- data/lib/image_paradise/cfdg/fly_agaric.cfdg +22 -0
- data/lib/image_paradise/cfdg/forest_and_ocean.cfdg +65 -0
- data/lib/image_paradise/cfdg/fractal_fern.cfdg +15 -0
- data/lib/image_paradise/cfdg/fractal_shell.cfdg +36 -0
- data/lib/image_paradise/cfdg/frost_bite.cfdg +23 -0
- data/lib/image_paradise/cfdg/fun_with_paper.cfdg +17 -0
- data/lib/image_paradise/cfdg/func_plot.cfdg +59 -0
- data/lib/image_paradise/cfdg/funky_squiggle.cfdg +40 -0
- data/lib/image_paradise/cfdg/fuzzy_sun.cfdg +47 -0
- data/lib/image_paradise/cfdg/galaxy.cfdg +59 -0
- data/lib/image_paradise/cfdg/gallery.cfdg +28 -0
- data/lib/image_paradise/cfdg/game1_turn6.cfdg +35 -0
- data/lib/image_paradise/cfdg/garland.cfdg +42 -0
- data/lib/image_paradise/cfdg/general_polygons.cfdg +20 -0
- data/lib/image_paradise/cfdg/generational_birds.cfdg +118 -0
- data/lib/image_paradise/cfdg/ghostly_spine.cfdg +24 -0
- data/lib/image_paradise/cfdg/gift_wrapping.cfdg +46 -0
- data/lib/image_paradise/cfdg/glass_cubes.cfdg +33 -0
- data/lib/image_paradise/cfdg/gleaming_bush.cfdg +33 -0
- data/lib/image_paradise/cfdg/glowing_bush.cfdg +33 -0
- data/lib/image_paradise/cfdg/go_grid.cfdg +32 -0
- data/lib/image_paradise/cfdg/gold_tiles.cfdg +21 -0
- data/lib/image_paradise/cfdg/golden_rectangle.cfdg +19 -0
- data/lib/image_paradise/cfdg/golden_sierpinski.cfdg +49 -0
- data/lib/image_paradise/cfdg/golgi_stain.cfdg +74 -0
- data/lib/image_paradise/cfdg/gothic_bath_tiles.cfdg +14 -0
- data/lib/image_paradise/cfdg/grass_land.cfdg +112 -0
- data/lib/image_paradise/cfdg/gray_matter.cfdg +110 -0
- data/lib/image_paradise/cfdg/great_forest.cfdg +91 -0
- data/lib/image_paradise/cfdg/growth.cfdg +46 -0
- data/lib/image_paradise/cfdg/gumtree.cfdg +28 -0
- data/lib/image_paradise/cfdg/haggards_bull.cfdg +92 -0
- data/lib/image_paradise/cfdg/haight_ashbury.cfdg +882 -0
- data/lib/image_paradise/cfdg/hair_pattern.cfdg +59 -0
- data/lib/image_paradise/cfdg/hairy.cfdg +43 -0
- data/lib/image_paradise/cfdg/hairy_branch.cfdg +48 -0
- data/lib/image_paradise/cfdg/hands_and_feet.cfdg +49 -0
- data/lib/image_paradise/cfdg/happy_new_year.cfdg +3435 -0
- data/lib/image_paradise/cfdg/hatagu_lila_spiral.cfdg +27 -0
- data/lib/image_paradise/cfdg/hexaeder_triangle.cfdg +43 -0
- data/lib/image_paradise/cfdg/hexclouds_textures.cfdg +75 -0
- data/lib/image_paradise/cfdg/hextiles.cfdg +73 -0
- data/lib/image_paradise/cfdg/hexy_continent.cfdg +83 -0
- data/lib/image_paradise/cfdg/human_ballet.cfdg +215 -0
- data/lib/image_paradise/cfdg/human_eyes.cfdg +102 -0
- data/lib/image_paradise/cfdg/hydra_tail.cfdg +57 -0
- data/lib/image_paradise/cfdg/i_like_it_dirty.cfdg +88 -0
- data/lib/image_paradise/cfdg/i_pix.cfdg +679 -0
- data/lib/image_paradise/cfdg/imaginary_star.cfdg +55 -0
- data/lib/image_paradise/cfdg/imaginery_forest.cfdg +61 -0
- data/lib/image_paradise/cfdg/impossible_stairs.cfdg +211 -0
- data/lib/image_paradise/cfdg/in_the_morning.cfdg +83 -0
- data/lib/image_paradise/cfdg/inertial_confinement.cfdg +150 -0
- data/lib/image_paradise/cfdg/infected_shell.cfdg +56 -0
- data/lib/image_paradise/cfdg/insect_fight.cfdg +316 -0
- data/lib/image_paradise/cfdg/insectivore.cfdg +80 -0
- data/lib/image_paradise/cfdg/interference.cfdg +43 -0
- data/lib/image_paradise/cfdg/interference_fields.cfdg +25 -0
- data/lib/image_paradise/cfdg/into_the_deep.cfdg +96 -0
- data/lib/image_paradise/cfdg/inverted_decorations.cfdg +85 -0
- data/lib/image_paradise/cfdg/irregular_galaxies.cfdg +29 -0
- data/lib/image_paradise/cfdg/iso_blocks.cfdg +35 -0
- data/lib/image_paradise/cfdg/jewelry_old_style.cfdg +31 -0
- data/lib/image_paradise/cfdg/just_some_flowers.cfdg +127 -0
- data/lib/image_paradise/cfdg/kaboom.cfdg +40 -0
- data/lib/image_paradise/cfdg/kaleidoskop.cfdg +27 -0
- data/lib/image_paradise/cfdg/kama_sutra.cfdg +182 -0
- data/lib/image_paradise/cfdg/kitakoa_akiyoshi_illusions_roller.cfdg +40 -0
- data/lib/image_paradise/cfdg/koch_snowflake.cfdg +11 -0
- data/lib/image_paradise/cfdg/kochlea.cfdg +43 -0
- data/lib/image_paradise/cfdg/kreepykrawler.cfdg +48 -0
- data/lib/image_paradise/cfdg/kw_expanded_explosion.cfdg +46 -0
- data/lib/image_paradise/cfdg/lapsang_abstrait.cfdg +51 -0
- data/lib/image_paradise/cfdg/laser.cfdg +51 -0
- data/lib/image_paradise/cfdg/last_pluto_dream.cfdg +95 -0
- data/lib/image_paradise/cfdg/lazy_dust.cfdg +42 -0
- data/lib/image_paradise/cfdg/lesson_one_two_three_four.cfdg +217 -0
- data/lib/image_paradise/cfdg/lila_lili.cfdg +60 -0
- data/lib/image_paradise/cfdg/lindenmayergrassef2_pretty_flowers.cfdg +94 -0
- data/lib/image_paradise/cfdg/lines_from_excel.cfdg +136 -0
- data/lib/image_paradise/cfdg/looking_out.cfdg +51 -0
- data/lib/image_paradise/cfdg/looking_up_in_the_sky.cfdg +43 -0
- data/lib/image_paradise/cfdg/lotus_logo.cfdg +49 -0
- data/lib/image_paradise/cfdg/lowercased_alphabet.cfdg +565 -0
- data/lib/image_paradise/cfdg/luma_smiley.cfdg +563 -0
- data/lib/image_paradise/cfdg/maggi_stars.cfdg +11 -0
- data/lib/image_paradise/cfdg/mandelbrot_3.cfdg +111 -0
- data/lib/image_paradise/cfdg/martini.cfdg +147 -0
- data/lib/image_paradise/cfdg/material_studies.cfdg +172 -0
- data/lib/image_paradise/cfdg/math_eye.cfdg +30 -0
- data/lib/image_paradise/cfdg/matrix_freestyle.cfdg +127 -0
- data/lib/image_paradise/cfdg/maze.cfdg +211 -0
- data/lib/image_paradise/cfdg/meaculpo.cfdg +46 -0
- data/lib/image_paradise/cfdg/medieval_madness.cfdg +140 -0
- data/lib/image_paradise/cfdg/menage_a_trois.cfdg +77 -0
- data/lib/image_paradise/cfdg/micky_mouse.cfdg +75 -0
- data/lib/image_paradise/cfdg/mistletoe_forest.cfdg +62 -0
- data/lib/image_paradise/cfdg/mixed_simple_bubbles.cfdg +20 -0
- data/lib/image_paradise/cfdg/mod4g_starhole.cfdg +27 -0
- data/lib/image_paradise/cfdg/moebius.cfdg +57 -0
- data/lib/image_paradise/cfdg/molecules.cfdg +30 -0
- data/lib/image_paradise/cfdg/momos_blossom.cfdg +70 -0
- data/lib/image_paradise/cfdg/mona_lisa.cfdg +7937 -0
- data/lib/image_paradise/cfdg/more_arrows_in_quadcity.cfdg +49 -0
- data/lib/image_paradise/cfdg/more_cats.cfdg +1002 -0
- data/lib/image_paradise/cfdg/mosaic_for_2D_games.cfdg +69 -0
- data/lib/image_paradise/cfdg/mr_bezier.cfdg +195 -0
- data/lib/image_paradise/cfdg/mtree.cfdg +33 -0
- data/lib/image_paradise/cfdg/multiple_triangles.cfdg +13 -0
- data/lib/image_paradise/cfdg/mycel.cfdg +88 -0
- data/lib/image_paradise/cfdg/mytohexagone.cfdg +56 -0
- data/lib/image_paradise/cfdg/nature_is_not_like_that.cfdg +48 -0
- data/lib/image_paradise/cfdg/negative_flowers.cfdg +85 -0
- data/lib/image_paradise/cfdg/neo_town.cfdg +41 -0
- data/lib/image_paradise/cfdg/nesting_pattern.cfdg +34 -0
- data/lib/image_paradise/cfdg/neuronal_network.cfdg +94 -0
- data/lib/image_paradise/cfdg/neuronal_root.cfdg +46 -0
- data/lib/image_paradise/cfdg/night.cfdg +82 -0
- data/lib/image_paradise/cfdg/nightwalker.cfdg +23 -0
- data/lib/image_paradise/cfdg/no_xcape.cfdg +41 -0
- data/lib/image_paradise/cfdg/noise.cfdg +12 -0
- data/lib/image_paradise/cfdg/octopodi.cfdg +51 -0
- data/lib/image_paradise/cfdg/octopussy.cfdg +49 -0
- data/lib/image_paradise/cfdg/oldschool_cartoon_figure.cfdg +181 -0
- data/lib/image_paradise/cfdg/open_shapes.cfdg +240 -0
- data/lib/image_paradise/cfdg/orange_blossom.cfdg +57 -0
- data/lib/image_paradise/cfdg/orange_guts.cfdg +43 -0
- data/lib/image_paradise/cfdg/orange_monster.cfdg +42 -0
- data/lib/image_paradise/cfdg/organic.cfdg +30 -0
- data/lib/image_paradise/cfdg/ouo_happy_smiley.cfdg +45 -0
- data/lib/image_paradise/cfdg/output.png +0 -0
- data/lib/image_paradise/cfdg/pacman.cfdg +18 -0
- data/lib/image_paradise/cfdg/palmen.cfdg +162 -0
- data/lib/image_paradise/cfdg/pandoras_box.cfdg +53 -0
- data/lib/image_paradise/cfdg/papillon_butterfly.cfdg +28 -0
- data/lib/image_paradise/cfdg/patchwork.cfdg +32 -0
- data/lib/image_paradise/cfdg/pattern_grass.cfdg +110 -0
- data/lib/image_paradise/cfdg/peau_de_grenouille.cfdg +16 -0
- data/lib/image_paradise/cfdg/penrose_tiling.cfdg +102 -0
- data/lib/image_paradise/cfdg/pentagon.cfdg +68 -0
- data/lib/image_paradise/cfdg/pentagons.cfdg +25 -0
- data/lib/image_paradise/cfdg/perspective_tsunami.cfdg +20 -0
- data/lib/image_paradise/cfdg/phi_cloud.cfdg +23 -0
- data/lib/image_paradise/cfdg/picnic_birds_eye_view.cfdg +132 -0
- data/lib/image_paradise/cfdg/ping_pong.cfdg +29 -0
- data/lib/image_paradise/cfdg/pink_blossom.cfdg +58 -0
- data/lib/image_paradise/cfdg/piupole.cfdg +77 -0
- data/lib/image_paradise/cfdg/plotting.cfdg +61 -0
- data/lib/image_paradise/cfdg/point_onto_root.cfdg +64 -0
- data/lib/image_paradise/cfdg/primitive_reptile_pattern.cfdg +96 -0
- data/lib/image_paradise/cfdg/psycho_knot.cfdg +20 -0
- data/lib/image_paradise/cfdg/pyramide.cfdg +67 -0
- data/lib/image_paradise/cfdg/pythagoras_puzzle.cfdg +17 -0
- data/lib/image_paradise/cfdg/pythagorean_tree.cfdg +70 -0
- data/lib/image_paradise/cfdg/qimica.cfdg +64 -0
- data/lib/image_paradise/cfdg/quad_green_satellite.cfdg +53 -0
- data/lib/image_paradise/cfdg/quadcity.cfdg +24 -0
- data/lib/image_paradise/cfdg/quiet_wood_town.cfdg +195 -0
- data/lib/image_paradise/cfdg/r180.cfdg +26 -0
- data/lib/image_paradise/cfdg/r45.cfdg +26 -0
- data/lib/image_paradise/cfdg/r_square.cfdg +36 -0
- data/lib/image_paradise/cfdg/rads.cfdg +33 -0
- data/lib/image_paradise/cfdg/rainbow_black_hole.cfdg +9 -0
- data/lib/image_paradise/cfdg/rainbow_sun.cfdg +9 -0
- data/lib/image_paradise/cfdg/random_handwriting.cfdg +50 -0
- data/lib/image_paradise/cfdg/random_tile_shapes_jens_revisited.cfdg +146 -0
- data/lib/image_paradise/cfdg/rays_attack.cfdg +29 -0
- data/lib/image_paradise/cfdg/razpad.cfdg +20 -0
- data/lib/image_paradise/cfdg/rectangular_distortion.cfdg +169 -0
- data/lib/image_paradise/cfdg/recurse_path.cfdg +38 -0
- data/lib/image_paradise/cfdg/red_flurry.cfdg +64 -0
- data/lib/image_paradise/cfdg/red_horse_tail.cfdg +36 -0
- data/lib/image_paradise/cfdg/red_yellow_mosaic.cfdg +26 -0
- data/lib/image_paradise/cfdg/rendering_tests.cfdg +183 -0
- data/lib/image_paradise/cfdg/repeat_floor_tile_pattern.cfdg +153 -0
- data/lib/image_paradise/cfdg/repeat_tile.cfdg +160 -0
- data/lib/image_paradise/cfdg/retro_disc.cfdg +736 -0
- data/lib/image_paradise/cfdg/ring_growth_variation.cfdg +41 -0
- data/lib/image_paradise/cfdg/robot_nightlife.cfdg +25 -0
- data/lib/image_paradise/cfdg/rolled_firespiral.cfdg +34 -0
- data/lib/image_paradise/cfdg/rose.cfdg +44 -0
- data/lib/image_paradise/cfdg/round_tree.cfdg +121 -0
- data/lib/image_paradise/cfdg/rubiks_cube.cfdg +120 -0
- data/lib/image_paradise/cfdg/ruins.cfdg +19 -0
- data/lib/image_paradise/cfdg/sails_and_the_sea.cfdg +27 -0
- data/lib/image_paradise/cfdg/salt_crystals.cfdg +26 -0
- data/lib/image_paradise/cfdg/saturn.cfdg +105 -0
- data/lib/image_paradise/cfdg/scary_pot.cfdg +49 -0
- data/lib/image_paradise/cfdg/schematic_worm.cfdg +35 -0
- data/lib/image_paradise/cfdg/school_script.cfdg +359 -0
- data/lib/image_paradise/cfdg/seahorse.cfdg +78 -0
- data/lib/image_paradise/cfdg/seasons.cfdg +115 -0
- data/lib/image_paradise/cfdg/segmental_veins.cfdg +66 -0
- data/lib/image_paradise/cfdg/select_mayhem.cfdg +28 -0
- data/lib/image_paradise/cfdg/seven_folded_symmetry.cfdg +7 -0
- data/lib/image_paradise/cfdg/several_cats.cfdg +996 -0
- data/lib/image_paradise/cfdg/shadow_box.cfdg +49 -0
- data/lib/image_paradise/cfdg/shadowrun_google_maps.cfdg +66 -0
- data/lib/image_paradise/cfdg/shadowrun_nightline.cfdg +18 -0
- data/lib/image_paradise/cfdg/shards.cfdg +70 -0
- data/lib/image_paradise/cfdg/sheet_music.cfdg +213 -0
- data/lib/image_paradise/cfdg/shy_guy.cfdg +886 -0
- data/lib/image_paradise/cfdg/sierpinski1.cfdg +41 -0
- data/lib/image_paradise/cfdg/sierpinski2.cfdg +34 -0
- data/lib/image_paradise/cfdg/sierpinski_like_red_swirl.cfdg +46 -0
- data/lib/image_paradise/cfdg/sierpinsktri.cfdg +9 -0
- data/lib/image_paradise/cfdg/silk_flowers.cfdg +68 -0
- data/lib/image_paradise/cfdg/silk_scarf.cfdg +18 -0
- data/lib/image_paradise/cfdg/simple_cilia.cfdg +88 -0
- data/lib/image_paradise/cfdg/simple_circle_and_square.cfdg +7 -0
- data/lib/image_paradise/cfdg/simple_coloured_square.cfdg +38 -0
- data/lib/image_paradise/cfdg/simple_ferns.cfdg +40 -0
- data/lib/image_paradise/cfdg/simple_fish.cfdg +77 -0
- data/lib/image_paradise/cfdg/simple_orchid.cfdg +23 -0
- data/lib/image_paradise/cfdg/simple_rounded_colour_wheel.cfdg +10 -0
- data/lib/image_paradise/cfdg/simple_sheet_music.cfdg +27 -0
- data/lib/image_paradise/cfdg/sincos_pattern_2.cfdg +42 -0
- data/lib/image_paradise/cfdg/singing_birdy.cfdg +112 -0
- data/lib/image_paradise/cfdg/skyscraper.cfdg +85 -0
- data/lib/image_paradise/cfdg/small_golden_rectangle.cfdg +12 -0
- data/lib/image_paradise/cfdg/smells_like_layered.cfdg +43 -0
- data/lib/image_paradise/cfdg/snowflake.cfdg +26 -0
- data/lib/image_paradise/cfdg/snowstorm.cfdg +26 -0
- data/lib/image_paradise/cfdg/soar_on_wings.cfdg +8 -0
- data/lib/image_paradise/cfdg/soft_core.cfdg +26 -0
- data/lib/image_paradise/cfdg/soft_touch.cfdg +20 -0
- data/lib/image_paradise/cfdg/some_sort_of_tree.cfdg +57 -0
- data/lib/image_paradise/cfdg/spade_ball.cfdg +39 -0
- data/lib/image_paradise/cfdg/sparks.cfdg +39 -0
- data/lib/image_paradise/cfdg/sperm.cfdg +63 -0
- data/lib/image_paradise/cfdg/sphinx.cfdg +17 -0
- data/lib/image_paradise/cfdg/spiral_clusters.cfdg +29 -0
- data/lib/image_paradise/cfdg/spiral_cross.cfdg +27 -0
- data/lib/image_paradise/cfdg/spiral_star.cfdg +19 -0
- data/lib/image_paradise/cfdg/spiral_sun.cfdg +39 -0
- data/lib/image_paradise/cfdg/spirit.cfdg +47 -0
- data/lib/image_paradise/cfdg/splatter_tree.cfdg +61 -0
- data/lib/image_paradise/cfdg/spliced.cfdg +27 -0
- data/lib/image_paradise/cfdg/spring_parade.cfdg +105 -0
- data/lib/image_paradise/cfdg/sprinkle_explosion.cfdg +23 -0
- data/lib/image_paradise/cfdg/square_limit_one.cfdg +15 -0
- data/lib/image_paradise/cfdg/square_rose.cfdg +75 -0
- data/lib/image_paradise/cfdg/square_spiral4.cfdg +41 -0
- data/lib/image_paradise/cfdg/square_star.cfdg +39 -0
- data/lib/image_paradise/cfdg/squiggle.cfdg +54 -0
- data/lib/image_paradise/cfdg/stacked_blob.cfdg +27 -0
- data/lib/image_paradise/cfdg/star_explosion.cfdg +38 -0
- data/lib/image_paradise/cfdg/star_flower.cfdg +72 -0
- data/lib/image_paradise/cfdg/star_mosaic_2007.cfdg +51 -0
- data/lib/image_paradise/cfdg/starry_pines.cfdg +79 -0
- data/lib/image_paradise/cfdg/stars_tentacles.cfdg +28 -0
- data/lib/image_paradise/cfdg/starshape.cfdg +57 -0
- data/lib/image_paradise/cfdg/strange_antlers.cfdg +49 -0
- data/lib/image_paradise/cfdg/strange_carpet.cfdg +13 -0
- data/lib/image_paradise/cfdg/sunset_city.cfdg +112 -0
- data/lib/image_paradise/cfdg/sweep.cfdg +946 -0
- data/lib/image_paradise/cfdg/swimmers_sperms.cfdg +54 -0
- data/lib/image_paradise/cfdg/sword.cfdg +24 -0
- data/lib/image_paradise/cfdg/tangle.cfdg +25 -0
- data/lib/image_paradise/cfdg/tapestry.cfdg +40 -0
- data/lib/image_paradise/cfdg/tasty_loops.cfdg +97 -0
- data/lib/image_paradise/cfdg/tendril.cfdg +6 -0
- data/lib/image_paradise/cfdg/tentacle_tree.cfdg +57 -0
- data/lib/image_paradise/cfdg/terraforming.cfdg +87 -0
- data/lib/image_paradise/cfdg/test.cfdg +7 -0
- data/lib/image_paradise/cfdg/tetris.cfdg +123 -0
- data/lib/image_paradise/cfdg/textured_giraffes.cfdg +122 -0
- data/lib/image_paradise/cfdg/the_eye.cfdg +16 -0
- data/lib/image_paradise/cfdg/the_go_game.cfdg +81 -0
- data/lib/image_paradise/cfdg/the_secret.cfdg +52 -0
- data/lib/image_paradise/cfdg/the_third_eye.cfdg +42 -0
- data/lib/image_paradise/cfdg/thingy.cfdg +13 -0
- data/lib/image_paradise/cfdg/thorns.cfdg +26 -0
- data/lib/image_paradise/cfdg/too_many_notes.cfdg +155 -0
- data/lib/image_paradise/cfdg/top_down_plant_root.cfdg +43 -0
- data/lib/image_paradise/cfdg/top_view_tree.cfdg +79 -0
- data/lib/image_paradise/cfdg/transparent_heart.cfdg +31 -0
- data/lib/image_paradise/cfdg/tree.cfdg +68 -0
- data/lib/image_paradise/cfdg/tree_number_5.cfdg +28 -0
- data/lib/image_paradise/cfdg/tree_retro.cfdg +46 -0
- data/lib/image_paradise/cfdg/tree_spiral.cfdg +52 -0
- data/lib/image_paradise/cfdg/treematic.cfdg +42 -0
- data/lib/image_paradise/cfdg/tri_arc.cfdg +16 -0
- data/lib/image_paradise/cfdg/tri_squares.cfdg +7 -0
- data/lib/image_paradise/cfdg/tube_map.cfdg +112 -0
- data/lib/image_paradise/cfdg/turing_morphogenesis.cfdg +788 -0
- data/lib/image_paradise/cfdg/twisted_hex_grid.cfdg +26 -0
- data/lib/image_paradise/cfdg/twisty_triangel.cfdg +79 -0
- data/lib/image_paradise/cfdg/twizeeded.cfdg +19 -0
- data/lib/image_paradise/cfdg/uncontrolled_fungus.cfdg +36 -0
- data/lib/image_paradise/cfdg/underground.cfdg +72 -0
- data/lib/image_paradise/cfdg/underwater.cfdg +75 -0
- data/lib/image_paradise/cfdg/unicorn_boi.cfdg +20 -0
- data/lib/image_paradise/cfdg/unification_sign.cfdg +52 -0
- data/lib/image_paradise/cfdg/urban_connections.cfdg +44 -0
- data/lib/image_paradise/cfdg/us_flag.cfdg +109 -0
- data/lib/image_paradise/cfdg/v_null.cfdg +89 -0
- data/lib/image_paradise/cfdg/very_simple_flower.cfdg +45 -0
- data/lib/image_paradise/cfdg/very_simple_hexagon.cfdg +16 -0
- data/lib/image_paradise/cfdg/very_simple_octagon.cfg +13 -0
- data/lib/image_paradise/cfdg/vigorous_vine.cfdg +45 -0
- data/lib/image_paradise/cfdg/ville_topview.cfdg +70 -0
- data/lib/image_paradise/cfdg/vine.cfdg +176 -0
- data/lib/image_paradise/cfdg/vinyl.cfdg +12 -0
- data/lib/image_paradise/cfdg/violet_ribbons.cfdg +45 -0
- data/lib/image_paradise/cfdg/voronoi_2.cfdg +61 -0
- data/lib/image_paradise/cfdg/wald.cfdg +46 -0
- data/lib/image_paradise/cfdg/water_ink.cfdg +71 -0
- data/lib/image_paradise/cfdg/water_monster.cfdg +33 -0
- data/lib/image_paradise/cfdg/web.cfdg +53 -0
- data/lib/image_paradise/cfdg/weighting_demo.cfdg +16 -0
- data/lib/image_paradise/cfdg/weird_spots.cfdg +15 -0
- data/lib/image_paradise/cfdg/welcome.cfdg +109 -0
- data/lib/image_paradise/cfdg/where_do_you_want_to_go_today.cfdg +632 -0
- data/lib/image_paradise/cfdg/where_is_the_head.cfdg +28 -0
- data/lib/image_paradise/cfdg/where_to_go.cfdg +62 -0
- data/lib/image_paradise/cfdg/willow.cfdg +39 -0
- data/lib/image_paradise/cfdg/witch_poison.cfdg +58 -0
- data/lib/image_paradise/cfdg/wooden_floor.cfdg +95 -0
- data/lib/image_paradise/cfdg/writhing.cfdg +15 -0
- data/lib/image_paradise/cfdg/wrooom_cars.cfdg +124 -0
- data/lib/image_paradise/cfdg/xmas_code.cfdg +101 -0
- data/lib/image_paradise/cfdg/xmas_tree.cfdg +70 -0
- data/lib/image_paradise/cfdg/yellow_cactus.cfdg +52 -0
- data/lib/image_paradise/cfdg/yet_another_explosion.cfdg +46 -0
- data/lib/image_paradise/cfdg/yin_yang_taijitu_pattern.cfdg +44 -0
- data/lib/image_paradise/cfdg/yog.cfdg +27 -0
- data/lib/image_paradise/cfdg/yurbanis_m.cfdg +27 -0
- data/lib/image_paradise/cfdg/zen_tree.cfdg +79 -0
- data/lib/image_paradise/cfdg/ziggy_flowers.cfdg +44 -0
- data/lib/image_paradise/cfdg/zodiac.cfdg +43 -0
- data/lib/image_paradise/chunky_png/chunky_png.rb +54 -0
- data/lib/image_paradise/colours/colours.rb +46 -0
- data/lib/image_paradise/confree_generator/confree_generator.rb +791 -0
- data/lib/image_paradise/confree_generator/constants.rb +93 -0
- data/lib/image_paradise/constants/constants.rb +50 -0
- data/lib/image_paradise/constants/image_file_types.rb +26 -0
- data/lib/image_paradise/crop/crop.rb +429 -0
- data/lib/image_paradise/gm_support.rb +34 -0
- data/lib/image_paradise/graphs/accumulator_bar.rb +29 -0
- data/lib/image_paradise/graphs/area.rb +64 -0
- data/lib/image_paradise/graphs/bar.rb +117 -0
- data/lib/image_paradise/graphs/bar_conversion.rb +53 -0
- data/lib/image_paradise/graphs/base.rb +1392 -0
- data/lib/image_paradise/graphs/bezier.rb +45 -0
- data/lib/image_paradise/graphs/bullet.rb +115 -0
- data/lib/image_paradise/graphs/deprecated.rb +42 -0
- data/lib/image_paradise/graphs/dot.rb +129 -0
- data/lib/image_paradise/graphs/line.rb +328 -0
- data/lib/image_paradise/graphs/mini/bar.rb +42 -0
- data/lib/image_paradise/graphs/mini/legend.rb +109 -0
- data/lib/image_paradise/graphs/mini/pie.rb +42 -0
- data/lib/image_paradise/graphs/mini/side_bar.rb +41 -0
- data/lib/image_paradise/graphs/net.rb +133 -0
- data/lib/image_paradise/graphs/photo_bar.rb +106 -0
- data/lib/image_paradise/graphs/pie.rb +139 -0
- data/lib/image_paradise/graphs/scatter.rb +264 -0
- data/lib/image_paradise/graphs/scene.rb +216 -0
- data/lib/image_paradise/graphs/side_bar.rb +144 -0
- data/lib/image_paradise/graphs/side_stacked_bar.rb +116 -0
- data/lib/image_paradise/graphs/spider.rb +163 -0
- data/lib/image_paradise/graphs/stacked_area.rb +73 -0
- data/lib/image_paradise/graphs/stacked_bar.rb +68 -0
- data/lib/image_paradise/graphs/stacked_mixin.rb +30 -0
- data/lib/image_paradise/graphs/themes.rb +117 -0
- data/lib/image_paradise/graphs.rb +36 -0
- data/lib/image_paradise/graphviz/README.md +2 -0
- data/lib/image_paradise/graphviz/generate_graphviz_image.rb +276 -0
- data/lib/image_paradise/gui/gtk3/cfdg_widget/cfdg_widget.rb +1452 -0
- data/lib/image_paradise/gui/gtk3/cfdg_widget/connect_skeleton.rb +46 -0
- data/lib/image_paradise/gui/gtk3/image_editor/connect_skeleton.rb +126 -0
- data/lib/image_paradise/gui/gtk3/image_editor/image_editor.rb +2003 -0
- data/lib/image_paradise/identify.rb +184 -0
- data/lib/image_paradise/image_paradise.rb +153 -0
- data/lib/image_paradise/image_to_ascii/image_to_ascii.rb +187 -0
- data/lib/image_paradise/image_to_pdf/image_to_pdf.rb +99 -0
- data/lib/image_paradise/label/README.md +2 -0
- data/lib/image_paradise/label/simple_label.rb +206 -0
- data/lib/image_paradise/logo/IMGUR_LOGO.png +0 -0
- data/lib/image_paradise/project/project.rb +30 -0
- data/lib/image_paradise/requires/common_base_requires.rb +17 -0
- data/lib/image_paradise/requires/require_colours.rb +9 -0
- data/lib/image_paradise/requires/require_gtk_components.rb +8 -0
- data/lib/image_paradise/requires/require_image_to_ascii.rb +7 -0
- data/lib/image_paradise/requires/require_the_image_paradise_project.rb +42 -0
- data/lib/image_paradise/requires/require_toplevel_methods.rb +21 -0
- data/lib/image_paradise/rotate/README.md +2 -0
- data/lib/image_paradise/rotate/rotate.rb +124 -0
- data/lib/image_paradise/shell/interactive.rb +156 -0
- data/lib/image_paradise/svg/README.md +5 -0
- data/lib/image_paradise/svg/circle.rb +106 -0
- data/lib/image_paradise/svg/feature.rb +48 -0
- data/lib/image_paradise/svg/rectangle.rb +154 -0
- data/lib/image_paradise/svg/svg.rb +102 -0
- data/lib/image_paradise/toplevel_methods/add_black_border_to_this_image.rb +94 -0
- data/lib/image_paradise/toplevel_methods/create_animated_gif.rb +49 -0
- data/lib/image_paradise/toplevel_methods/crop.rb +29 -0
- data/lib/image_paradise/toplevel_methods/e.rb +16 -0
- data/lib/image_paradise/toplevel_methods/esystem.rb +19 -0
- data/lib/image_paradise/toplevel_methods/extract_text_from_this_image.rb +56 -0
- data/lib/image_paradise/toplevel_methods/file_related_code.rb +48 -0
- data/lib/image_paradise/toplevel_methods/flip_image_left_right.rb +59 -0
- data/lib/image_paradise/toplevel_methods/font_related_methods.rb +62 -0
- data/lib/image_paradise/toplevel_methods/greyscale_this_image.rb +76 -0
- data/lib/image_paradise/toplevel_methods/gui.rb +19 -0
- data/lib/image_paradise/toplevel_methods/help.rb +30 -0
- data/lib/image_paradise/toplevel_methods/interlace.rb +33 -0
- data/lib/image_paradise/toplevel_methods/is_an_image_file.rb +18 -0
- data/lib/image_paradise/toplevel_methods/make_this_image_transparent.rb +40 -0
- data/lib/image_paradise/toplevel_methods/menu.rb +110 -0
- data/lib/image_paradise/toplevel_methods/merge_these_images.rb +49 -0
- data/lib/image_paradise/toplevel_methods/mirror_image.rb +28 -0
- data/lib/image_paradise/toplevel_methods/misc.rb +1407 -0
- data/lib/image_paradise/toplevel_methods/negate.rb +36 -0
- data/lib/image_paradise/toplevel_methods/png_to_svg.rb +38 -0
- data/lib/image_paradise/toplevel_methods/quality.rb +34 -0
- data/lib/image_paradise/toplevel_methods/resized.rb +43 -0
- data/lib/image_paradise/toplevel_methods/roebe.rb +323 -0
- data/lib/image_paradise/toplevel_methods/thumbnail.rb +54 -0
- data/lib/image_paradise/toplevel_methods/to_png.rb +106 -0
- data/lib/image_paradise/toplevel_methods/wallpaper.rb +51 -0
- data/lib/image_paradise/toplevel_methods/write_this_text.rb +89 -0
- data/lib/image_paradise/utility_scripts/black_white.rb +92 -0
- data/lib/image_paradise/utility_scripts/create_new_image.rb +110 -0
- data/lib/image_paradise/utility_scripts/image_border.rb +226 -0
- data/lib/image_paradise/utility_scripts/image_gallery/image_gallery.rb +283 -0
- data/lib/image_paradise/utility_scripts/image_manipulations.rb +316 -0
- data/lib/image_paradise/utility_scripts/magic_card_border.rb +215 -0
- data/lib/image_paradise/utility_scripts/optimizer.rb +452 -0
- data/lib/image_paradise/utility_scripts/random_text_to_image.rb +364 -0
- data/lib/image_paradise/utility_scripts/text_on_image.rb +311 -0
- data/lib/image_paradise/utility_scripts/to_gif.rb +93 -0
- data/lib/image_paradise/utility_scripts/to_jpg.rb +82 -0
- data/lib/image_paradise/version/version.rb +19 -0
- data/lib/image_paradise/www/cfdg.cgi +25 -0
- data/lib/image_paradise/www/imagemagick/imagemagick.cgi +266 -0
- data/lib/image_paradise/yaml/README.md +2 -0
- data/lib/image_paradise/yaml/arc.yml +0 -0
- data/lib/image_paradise/yaml/circle.yml +6 -0
- data/lib/image_paradise/yaml/rectangle.yml +6 -0
- data/lib/image_paradise.rb +5 -0
- data/test/16x16_red_square_image_for_testing.png +0 -0
- data/test/misc/README.md +3 -0
- data/test/misc/testing_filling_up_with_circles.rb +65 -0
- data/test/testing_confree_generator.rb +8 -0
- data/test/testing_crop.rb +19 -0
- data/test/testing_image_magick_commands.rb +39 -0
- data/test/testing_image_paradise.rb +49 -0
- data/test/testing_the_svg_component.html +261 -0
- data/test/testing_the_svg_component.rb +106 -0
- 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
|
+
}}
|
|
File without changes
|
|
Binary file
|
data/test/misc/README.md
ADDED
|
@@ -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"
|