On the road to G'MIC 3.4

This post lists all the changes/additions done to the G’MIC software, starting from the version 3.3.0, until we reach the next major release 3.4.0.
Most of these features are available in latest stable version of G’MIC (3.3.0) after a filter update ($ gmic update).

New features:

  • [gmic-qt-331] New filter Arrays & Tiles / Loose Photos simulates an effect of loose photos that are spatially arranged to recreate a global picture.

  • [stdlib-331] Command font returns a font identifier that can be used in text drawing commands, to draw text with more various fonts than the default one.

  • [stdlib-331] Command font2gmz converts a .otf or .ttf font file as a gmz font file that can be used to draw text with custom fonts.

  • [math-core-331] New function ispercent(arg) returns 1 or 0 whether arg ends with a % or not.

improvements / Modifications:

  • [core-331] Removed possibility of having stand-alone { ... } blocks in scripts. Now { ... } can be only used for constructs that require a done ending item.

  • [core-331] Command text can now use a custom font defined as an image in the list, in addition to a image-valued variable name.

  • [stdlib-331] Command img2str has been recoded from scratch. It returns the content of the selected images, as special G’MIC input strings.

  • [stdlib-331] Command display: Add forward/backward modes for 3D mesh animation.

  • [stdlib-331] Command text_outline now accepts a custom font as argument.

  • [stdlib-331] Command input_obj: Improve import of .obj mesh with per-vertex defined colors.

Bug fixes:

  • [gmic-qt-331] Fix aspect ratio of preview error when using gui_error_preview.
2 Likes

I would like for display to generate all of the image information on the CLI at once without having to click on images on the display. display is ever only going to be used for knowing what the output would be.

Still hoping for a variable density Hilbert fill option (why not add to the wishlist). lol

:slight_smile:

Variable Density Hilbert Curve - Software / G’MIC - discuss.pixls.us

Before I put out a issue, I’d like to know why this isn’t working out:

image

See that &#40? That is supposed to be ( on the G’MIC plugin.

Here, the code:

#@gui:Palette=choice(10,"Black & White-{2}","Red-Green-Blue-{3}","Black with Red-Green-Blue-{4}","Black & White with Red-Green-Blue-{5}","Cyan-Magenta-Yellow-{3}","Cyan-Magenta-Yellow-Black-{4}","White-Cyan-Magenta-Yellow-Black-{5}","Red-Green-Blue with Cyan-Magenta-Yellow-{6}","1-Bit RGB-{8}","Aurora-{256}","Zenit-241","Game Builder Garage: Texture-Sprite Editor Palette-{117}","Duel-{256}","Hocus Pocus Palette-{256}","PLAYPAL-{249}","Sonic Robo Blast 2-{256}","Uzebox-{256}","Andrew Kensler - 16","Andrew Kensler - 32","Andrew Kensler - 54","AAP-Micro 12","AAP-16","AAP-64","AAP-RadiantPLUS-{96}","AAP-SPLENDOR128","AAP-DGA16","Cheerful-32","DB8","DB16","DB32","DB-ISO22","DimWiddy 17","DimWiddy 23","Endesga-4","Endesga-8","Endesga-16","Endesga-32","Endesga-36","Endesga-64","Famicube-{64}","Juicy-32","Juicy-56","XAIUE-22","15P-DX","20P-DX","24P-DX","Cabana-64","Fantasy 16","Fantasy 24","Tranquil Fantasy 23","Tranquility Plus 39","Faraway 48","Fleja Master Palette-{33}","Koni32","Linear Color Palette Basic-{31}","LEGO colors-{43}","Lego Colours 2021-{40}","Vines Flexible Linear Ramps-{38}","Arcade Standard 29","ARQ16","Atom-8","BLK 36","BLK-NEO-{46}","Broken Facility-{40}","Bubblegum-16","CPC BOY-{32}","Cade 15","Calder 8-{11}","CD-BAC-{16}","CG Arne-{16}","DinoKnight 16","||||-22","FZT Ethereal 16","Indecision-{17}","Island Joy 16","Journey-{64}","Shallowmarsh26","Lago Nenufar &#40Lake Water Lily&#41-{19}","Juicy 17","ChocolateGanache-{96}","Bright Winter 1-{74}","Bright Winter 2-{83}","Kawaii16","0xdb-01-{17}","GZXP-{11}","Chromatic16","Piet Coding Language-{20}","Matrix-{96}","Material Design-{96}","Rainbow-{88}","Rainbow-{96}","SCRJ-XXXVI-{36}","Pxls Default-{32}","Lospec500-{42}","Moderna-{24}","Oak21","Nature's Embrace 55","RBYPGO-{94}","New Worlds 46","Nauris-16","Dynamite-{40}","Interstate 28","Downgraded 32","Pear 36","Pineapple 32","Peachy Pop 16","Resurrect 32","Rosy 42","SLSO-CLR17","Softy 15","SPEC12","The Roarin 80's","Starmancer-{52}","SuperFuture25","SUNSHINE 35","Sweetie 16","Calm 48","Optimism-{32}","Taffy 16","Todayland Palette V2-{25}","TriRampo-{12}","r|place 2022-{32}","Tropical Cone 24","Vivid-17","SHIDO50+-{72}","Intacto14","Itatsi-{23}","ENOS16","Grixel Grotto-{16}","Superb 8","Undertones-17","Tango-{28}","Cheese Palette-{28}","Equpix 15","Zughy 32","Voodo34","Franzston 30","Night 16","Star 29","Star 34","Still-Life-{14}","SimpleJPC-16","Acid 15","Battery 24","Clumpy 18","Cthulhu-{16}","Crimso 11-{16}","Copper-Tech-{16}","DRZ15A","Eggy 15","Europa 16","GreyT-bit-{8}","Jewel-{15}","Polar 11","Sheltzy 32","Wyrm 24","Yume Nikki-{24}","Rube-Goldberg-{9}","BoomBoom-{7}","Generic-8","Crayola Blind-{9}","FunkyFuture8","The Golden Wall Palette-{7}","Matriax8c","NT1H-{26}","JerryPie 22","Nineties Nine-{9}","On70-{35}","ANB16","Retrocal-8","Punolit-{21}","Luap 40","Autum Villan 6","Autum 15","Autum 15 [Yellow]","Galaxy Flame-{16}","Cretaceous-16","Antiquity16","Mushroom-{14}","Aerugo-{32}","Hotel Paintings 6","Nopal-12","Brightness GPY-{3}","Blessing-{5}","Fairydust 8","Vanilla MilkShake-{16}","Fuzzy Four-{4}","Fairy Tales-{8}","Naji 16","Easter Island-{16}","Pastel and Darks 58 Palette","17 Pastels","NOSTALGIA15","Ocaso-{17}","Oh Hell&#44 Pastel-{15}","Pollen-8","KULE-16","Hydrangea 11","Fluffy8","ST 8 R&B Remake","Neon Space-{10}","Cyclope6","Sy17","Syz15","TUI-15","Cave-{8}","Psygnosia-{16}","MarshMellow32","Lost Century 24","Finlal 11","Industrial Factory 16","Murder Mystery 16","Fate & Destiny 12","Vinik 24","YKB-22","Halloween-{7}","Graveyard-21","Steam Lords-{16}","Frostical-{18}","DeuteroSpill-{9}","Cool Bone 7","Muted Ally 6","EPHEMERA-{12}","Ink-{5}","Violet Dreams-{8}","Tinyfolks-{5}","Old Gold 7","Rosemoss-8","AAP-RadiantXV-{15}","AAP-Majesty XVII-{17}","Dead Weight-8","Mojave20","Petite-8","Petite-8 Afterdark","XAIUE-Radiant-{22}","Daruda 22","Firestorm-{9}","Borkfest-{8}","Spicy 07","Rust-6","Apricot-{6}","SuperNova 7","Pastry-{5}","Sandy 06","Illumination-{5}","NYX8","Dream Haze 8","OIL6","Regal10","Soft Demon 7","SGM-Palette 2-{17}","Midnight ablaze-{7}","Black Cherry-{5}","Sunset Red-{5}","INKPINK-{6}","Brash Pink-{5}","Pink Neon Sign 6","Enchanted Purple-{12}","Arch-{11}","Spacey Easter-{17}","Fornax Void I-{256}","Fornax Void II-{128}","Pixelwave-{12}","S1-6","Berry Nebula-{8}","ABYSS-9","Moonlight 15","Moonlit-39","H2O-{10}","Magic Waters 9","Bluem0ld-{4}","Moss-{5}","DEEP MAZE-{7}","Toxic Slime-{5}","Lush Green-{6}","Tsunami-{5}","Cryptic Ocean-{6}","Marsh Madness-{5}","OXYD-{8}","Pink&Green-{8}","Walking in the Woods 8","Paper 8","Sahara Pastell-{7}","Sunflower Painting 7","Art Hoe Aesthetic 7","Sky5-{7}","Ocean Glass-{8}","RoyalGuard-{6}","Eulbink-{7}","Winter Wonderland-{8}","Moon Squid 7","Stratus-{5}","Arctic Dust-{5}","CL8UDS","Lilac Skies 5","Sea of Fire-{6}","Autochrome 3","Autochrome 5","GB Default 1-{4}","GB Default 2-{4}","GB Andrade-{4}","GB Blue Seni-{4}","GB Blackzone-{4}","GB Suburb-{4}","GB Crimson-{4}","GB Didi-{4}","GB Dirty-{4}","GB Arne-{4}","GB Easy-{4}","GB Forest-{4}","GB Harsh Green-{4}","GB Light Green-{4}","GB Nostalgia-{4}","GB Platinum-{4}","GB Kirokaze-{4}","GB Cyber-{4}","GB Wish-{4}","GB Grapefruit-{4}","GB Ice Cream-{4}","GB Red_Blue-{4}","Gold GB-{4}","GB Chocolate-{4}","GB Gray-{4}","GB Spacehaze-{4}","GB Purple Dawn-{4}","Moon Crystal-{4}","ARNE4","Autumn Chill-{4}","CherryMelon-{4}","HallowPumpkin-{4}","Hollow-{4}","Lavender4","MAW-{4}","Voltage Warning-{4}","Tritanopia-{5}","Rabbit 7","Amiga 2600 NTSC-{128}","Amiga 2600 PAL-{104}","Amiga 2600 SECAM-{8}","Amiga 7800 M.E.S.S-{256}","Amiga 7800-{256}","Amstrad CPC-{27}","Apple II-{15}","Atari 8-Bit Series - GTIA-{256}","CGA-{16}","CGA Mode 0 [Low]-{4}","CGA Mode 0 [High]-{4}","CGA Mode 1 [Low]-{4}","CGA Mode 1 [High]-{4}","CGA Mode 2 [Low]-{4}","CGA Mode 2 [High]-{4}","Commodore 64 - Pepto-{16}","Commodore 64 - Colodore-{16}","Commodore VIC-20-{16}","Colecovision-{15}","Japanese Machine Palette-{16}","Macintosh II-{16}","Macintosh 8-Bit System Palette-{256}","MSX-{15}","NES-{55}","PICO-8-{16}","RISC OS-{16}","SAM Coupe-{128}","Thomson MO5-{16}","TRS-80 Color Computer Palette-{4}","Virtual Boy interpreted-{4}","VGA-{244}","Win 95-{256}","ZX Spectrum-{15}","GNOME 32","Electronic Crayon 22","Chip16","Deluxe Paint-{222}","FlatUI-{20}","MakeCode Arcade Palette-{15}","Oekaki-{20}","Legacy Paint-{16}","XP Paint-{28}","Vista Paint-{28}","Piet Palette-{5}","Japanese Woodblock Palette-{12}","Human Faces-{94}","HSV Palette-{96}","ST24 Christmas","Reds-{24}")

( is correct, not &#40. (see HTML Symbols | HTML Emojis).

1 Like

This is not practical to do this if you have a lot of images (e.g. 100+) to display at the same time.
This overflows the terminal with information that is probably too detailed for the average person.

Workaround: You can define the following command:

my_display : 
  v 1 print 
  v 0 display

Can I set this to default display?

Rather use:

$ gmic update

Then set global variable _display_print_images to inf, in your cli_start command:

cli_start : 
  _display_print_images=inf
1 Like

It works though I have to wait for it finish printing before displaying images.

A simple case test:

$ +pal *

The above generates all of the palettes available within +pal which is 385 palettes.

That’s precisely why it’s actually not a good idea to print all images, and why I’ve limited it to the first 5 images by default.