Forum
    • Categories
    • Register
    • Login

    Images in panels - load and unload

    Scheduled Pinned Locked Moved General Questions
    18 Posts 2 Posters 77 Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • LindonL
      Lindon @Lindon
      last edited by

      , just to be clear I also tried just load, but this seems to load multiple images and only ever displays the first one....

      HISE Development for hire.
      www.channelrobot.com

      LindonL 1 Reply Last reply Reply Quote 0
      • LindonL
        Lindon @Lindon
        last edited by

        @Lindon ..and if I reload the image in the paint callback it works -- but that seems very inefficient..

        HISE Development for hire.
        www.channelrobot.com

        David HealeyD 1 Reply Last reply Reply Quote 0
        • David HealeyD
          David Healey @Lindon
          last edited by

          @Lindon Load all the images into the panel within on init. Then in the paint routine draw the image you want to use - you could use the panel's value to select the image if you're not using it for anything else.

          Free HISE Bootcamp Full Course for beginners.
          YouTube Channel - Public HISE tutorials
          My Patreon - HISE tutorials

          LindonL 1 Reply Last reply Reply Quote 0
          • LindonL
            Lindon @David Healey
            last edited by Lindon

            @David-Healey thats more or less what Im doing, but the paint routine isnt drawing what I want -despite me asking politely... its drawing the first image loaded into the panel....

            HISE Development for hire.
            www.channelrobot.com

            David HealeyD 1 Reply Last reply Reply Quote 0
            • David HealeyD
              David Healey @Lindon
              last edited by

              @Lindon Can you share the paint routine or a minimal snippet?

              Free HISE Bootcamp Full Course for beginners.
              YouTube Channel - Public HISE tutorials
              My Patreon - HISE tutorials

              LindonL 1 Reply Last reply Reply Quote 0
              • LindonL
                Lindon @David Healey
                last edited by Lindon

                @David-Healey sadly its a bit of a monster...

                Here's a paint routine:

                function paintLibraries(g)
                {
                	panelValue = this.getValue();
                	//Console.print(trace(panelValue));
                	Console.print("trying to draw:" + panelValue.LibImage);
                	
                	templibImg = imageDirFile.getChildFile(panelValue.LibImage);
                	this.loadImage(templibImg.toString(templibImg.FullPath), panelValue.LibImage);
                	g.drawImage(panelValue.LibImage, [0,0,this.get("width"),this.get("height")], 0, 0);
                	//draw edgeing in black
                	g.setColour(Colours.black);
                	g.drawRect([0,0,this.get("width"),this.get("height")],1);
                	//draw the icon for opened or closed...
                	g.setColour(Colours.white);
                	if (panelValue.DisplayState == 0)
                	{
                		//not opened
                		g.fillPath(paths.icons.PointRight, [this.get("width")-20,this.get("height")-30,15,25]);
                	}else{
                		//opened..
                		g.rotate(radianFromDegree*90,[this.getWidth()-10,this.getHeight()-15]);
                		g.fillPath(paths.icons.PointRight, [this.get("width")-15,this.get("height")-20,12,22]);
                	};
                };
                

                As you can see each panel has a json object in its value and it uses this to decide which image to load....

                Thinking about doing this a completely different way.. and fixing panels to thier owning JSON, not loading the json into the panel...

                HISE Development for hire.
                www.channelrobot.com

                David HealeyD 1 Reply Last reply Reply Quote 0
                • David HealeyD
                  David Healey @Lindon
                  last edited by

                  @Lindon I wouldn't load the images in the paint routine, I'm not sure if there's an efficiency hit but it doesn't feel like the right approach.

                  Let's say we have 3 images, img1.png, img2.png, img3.png

                  In on init we can load them into the panel.

                  myPanel.loadImage("{PROJECT_FOLDER}img1.png", "img1");
                  myPanel.loadImage("{PROJECT_FOLDER}img2.png", "img2");
                  myPanel.loadImage("{PROJECT_FOLDER}img3.png", "img3");
                  

                  Then in the paint routine we can select the image to draw using its name (which you can get from your json object)

                  var image = "img1"; //Get from your json object
                  g.drawImage(image, area, 0, 0);
                  

                  Free HISE Bootcamp Full Course for beginners.
                  YouTube Channel - Public HISE tutorials
                  My Patreon - HISE tutorials

                  LindonL 1 Reply Last reply Reply Quote 0
                  • LindonL
                    Lindon @David Healey
                    last edited by Lindon

                    @David-Healey except this doesnt work!!!!

                    It always draws the first image you loaded......

                    HISE Development for hire.
                    www.channelrobot.com

                    David HealeyD 1 Reply Last reply Reply Quote 0
                    • David HealeyD
                      David Healey @Lindon
                      last edited by

                      @Lindon

                      Working here. Try this. ImageLoadTest.zip

                      Peek 2026-04-08 15-14.gif

                      Free HISE Bootcamp Full Course for beginners.
                      YouTube Channel - Public HISE tutorials
                      My Patreon - HISE tutorials

                      LindonL 1 Reply Last reply Reply Quote 0
                      • LindonL
                        Lindon @David Healey
                        last edited by

                        @David-Healey now even this isnt working:

                        for(i = 0; i <NUM_individualLibPanels; i++)
                        {
                        	individualLibraryPanels[i] = Content.addPanel("iLibPanel" + (i+1), 0, 0);
                        	Content.setPropertiesFromJSON("iLibPanel" + (i+1),  {
                            "type": "ScriptPanel",
                            "x": 1.0,
                            "y": 0.0,
                            "parentComponent": "LibraryDisplayPanel",
                            "width": 275.0,
                            "height": LIB_PANEL_HEIGHT,
                            "borderSize": 1.0,
                            "borderRadius": 0.0
                          });
                          individualLibraryPanels[i].showControl(false);
                          individualLibraryPanels[i].setPaintRoutine(function(g)
                          {
                          	Console.print("painting painting");
                          });
                        };
                        

                        HISE Development for hire.
                        www.channelrobot.com

                        David HealeyD 1 Reply Last reply Reply Quote 0
                        • David HealeyD
                          David Healey @Lindon
                          last edited by

                          @Lindon do paint routines trigger for hidden panels?

                          Free HISE Bootcamp Full Course for beginners.
                          YouTube Channel - Public HISE tutorials
                          My Patreon - HISE tutorials

                          LindonL 1 Reply Last reply Reply Quote 0
                          • LindonL
                            Lindon @David Healey
                            last edited by

                            @David-Healey yes

                            HISE Development for hire.
                            www.channelrobot.com

                            LindonL 1 Reply Last reply Reply Quote 0
                            • LindonL
                              Lindon @Lindon
                              last edited by

                              @Lindon well actually no paint routines trigger at all and no panel will show up even if I've commented out all teh paint routines...

                              HISE Development for hire.
                              www.channelrobot.com

                              LindonL 1 Reply Last reply Reply Quote 0
                              • LindonL
                                Lindon @Lindon
                                last edited by

                                @Lindon literally nothing is working now...I've broken it somehow...

                                HISE Development for hire.
                                www.channelrobot.com

                                David HealeyD 1 Reply Last reply Reply Quote 0
                                • David HealeyD
                                  David Healey @Lindon
                                  last edited by

                                  @Lindon said in Images in panels - load and unload:

                                  @Lindon literally nothing is working now...I've broken it somehow...

                                  You'll figure it out 🙏🏻

                                  Free HISE Bootcamp Full Course for beginners.
                                  YouTube Channel - Public HISE tutorials
                                  My Patreon - HISE tutorials

                                  LindonL 1 Reply Last reply Reply Quote 0
                                  • LindonL
                                    Lindon @David Healey
                                    last edited by

                                    @David-Healey look at this!

                                    b784e504-f37a-45ac-9472-0f0164027a3f-image.png

                                    everything says its there - but its not displaying...

                                    HISE Development for hire.
                                    www.channelrobot.com

                                    LindonL 1 Reply Last reply Reply Quote 0
                                    • LindonL
                                      Lindon @Lindon
                                      last edited by Lindon

                                      @Lindon ohh

                                      "height": undefined <---whata dumb ass....

                                      HISE Development for hire.
                                      www.channelrobot.com

                                      1 Reply Last reply Reply Quote 1
                                      • First post
                                        Last post

                                      13

                                      Online

                                      2.2k

                                      Users

                                      13.6k

                                      Topics

                                      118.0k

                                      Posts