cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
lukex075
Advocate V
Advocate V

Is it possible to create a gallery from images saved to Media in PowerApps?

I have links to images in my Excel doc, and I have a gallery that is pulling the images from that doc. Sometimes, however, the images are slow to load. I've noticed that images saved in Media in PowerApps load much more quickly. Is it possible to put images from Media into a gallery?

1 ACCEPTED SOLUTION

Accepted Solutions

Hi again, happy to help.  Here are my thoughts.

 

There are basically three options for storing your images (i.e. the JPEG etc. files themselves):

1) Somewhere in the cloud,  and each image has its own URL

2) In a database that can also store image files, and you add that database as a source in your PowerApp

3) In the PowerApp itself in Media

 

From what I understand your situation is currently 1 and you have the list of the URLs to the images in an Excel file that is itself in turn used as a source by a PowerApp.  My suggestion was to move to 3.  So now back to your questions.

 

Let's stick with option 3 for the moment.  I assume that you have loaded your images in Media in your PowerApp, and that each image has a name like AAA.jpg BBB.jpg etc. (avoid spaces in the filenames)

Close PowerApps and with Excel create a table with a single column. Name the table "MyImages" and name the column "ImageURL"

The items of the column should be:

ms-appdata:///local/Resources/Assets/Images/AAA.JPG

ms-appdata:///local/Resources/Assets/Images/BBB.JPG

etc. etc. etc.

Save this Excel file on your desktop.

Now back in PowerApp Studio open your PowerApp and go to Content->Data sources->Add data source then choose "Add static data to your App"

Find your file on the desktop and select it, then select MyImages and then press Connect.  Now you have a permanent copy of those links in the App, and this is called MyImages.  You can delete the Excel file and nothing will happen.

Now create a custom gallery and set the .Items property to MyImages, then insert an image control in the gallery and set its .Image property to ThisItem.ImageURL

This should now work, please let me know how you get on.

 

PS If you also have the title of the image or a description or anything else, just add another column (ImageTitle) to the Excel table above with that.  This column will also be imported and you can use it in a text box also in the gallery for example by setting the .Text property to ThisItem.ImageTitle

View solution in original post

24 REPLIES 24
Steelman70
Power Participant
Power Participant

Yes, it is possible, the URL for an image stored in Media is the following:

ms-appdata:///local/Resources/Assets/Images/MyImageFilename.JPG

Therefore you need to simply create a collection of the URLs of your images stored in Media, then use that collection as the .Items property of the gallery.

 

I have tried and it works, so please let me know if you need more details.

 

This is a good solution if your images are really static, otherwise you can create a static copy of your URL list as saved app data and not refer to an external Excel for the URL every time.

 

Again, please let me know if you need more details.

Hi Steelman70,

 

This is good news! How do you create a collection of images? The tutorial I found looks like the function of a collection is different: https://powerapps.microsoft.com/en-us/tutorials/create-update-collection/. Do you mean to just use the linksfrom Media and put those into Excel?

 

A second question: how do you create the static copy of a URL list to store as saved app data? Mostly everything in my app is referring to an external Excel doc, and that's caused problems on a number of occasions.

 

Thank you!

Hi again, happy to help.  Here are my thoughts.

 

There are basically three options for storing your images (i.e. the JPEG etc. files themselves):

1) Somewhere in the cloud,  and each image has its own URL

2) In a database that can also store image files, and you add that database as a source in your PowerApp

3) In the PowerApp itself in Media

 

From what I understand your situation is currently 1 and you have the list of the URLs to the images in an Excel file that is itself in turn used as a source by a PowerApp.  My suggestion was to move to 3.  So now back to your questions.

 

Let's stick with option 3 for the moment.  I assume that you have loaded your images in Media in your PowerApp, and that each image has a name like AAA.jpg BBB.jpg etc. (avoid spaces in the filenames)

Close PowerApps and with Excel create a table with a single column. Name the table "MyImages" and name the column "ImageURL"

The items of the column should be:

ms-appdata:///local/Resources/Assets/Images/AAA.JPG

ms-appdata:///local/Resources/Assets/Images/BBB.JPG

etc. etc. etc.

Save this Excel file on your desktop.

Now back in PowerApp Studio open your PowerApp and go to Content->Data sources->Add data source then choose "Add static data to your App"

Find your file on the desktop and select it, then select MyImages and then press Connect.  Now you have a permanent copy of those links in the App, and this is called MyImages.  You can delete the Excel file and nothing will happen.

Now create a custom gallery and set the .Items property to MyImages, then insert an image control in the gallery and set its .Image property to ThisItem.ImageURL

This should now work, please let me know how you get on.

 

PS If you also have the title of the image or a description or anything else, just add another column (ImageTitle) to the Excel table above with that.  This column will also be imported and you can use it in a text box also in the gallery for example by setting the .Text property to ThisItem.ImageTitle

And now for your second question.  This was partly answered above: basically create a table in an Excel file and import it as static data.

Actually you can also write to the static data!!!  You can use the Patch function to edit an URL or a title in the example above from within the PowerApp after the static data source is created.

So if your data is not large and you do not need to expose it to any other application then you could store it in the PowerApp itself.

 

Please note that I have not tested this, but I imagine that this data is visible and the same for all users of the PowerApp.

 

If you need to store data for a specific user only, and it seems on a specific device only, then you can use this:

https://powerapps.microsoft.com/en-us/tutorials/function-savedata-loaddata/

Hi @Steelman70,

 

I'd like to revisit this question now that I'm further along with my app. I don't have any coding/programming background, and I'm not super familiar with places to store images, etc, so forgive me if these questions are somewhat simplistic!

 

To go in order with your options from before:

 

1) What cloud services are available where you could get unrestricted links? (i.e. using OneDrive as cloud storage presents problems because the links contain reference to SharePoint, so they can't be viewed outside the VPN)

 

2) What other databases can store image files? Would this be similar to using a cloud service, like DropBox? (We don't have DropBox, but I could look into it if the service would suit our purposes.)

 

3) I'm having problems getting the links from images stored in PowerApps Media to work consistently. They look great in editing mode, but when you go to viewer mode the images don't load properly. Looking at the path of this file, what is Images referencing?  ms-appdata:///local/Resources/Assets/Images/AAA.JPG  Is that supposed to be the table? If so, shouldn't it be "MyImages" like your example?

 

If I can get this figured out, I think my app will be done! Right now, it's working beautifully on the VPN, but it doesn't work for users who are not on the VPN, presumably because my image links are from a projects page on SharePoint.

 

Thanks in advance!!

Hi @lukex075

 

To be able to better help you, how many images are we talking about, and how often do they need to be changed/added/deleted?  This would determine where to best store your images.  Once you determine this, any of the 3 options can be made to work.

 

In any case:

1) If your SharePoint pages/images cannot be seen outside of the VPN it is probably because of the security settings of your SharePoint implementation.  SharePoint can be made accessible from anywhere, please talk to your SP administrators about this.

 

2) I was thinking more of something like an Azure DB.  If you can wait a few more weeks, let's see what the Microsoft Common Data Model will look like, this might be a solution.  Storing the images in DropBox would also work, but this would be option 1) and the solution is very similar to option 3) but instead of pointing to local storage you would point to DropBox instead

 

3) The "Images" in the path is referring to the "directory" in local storage (i.e. the storage of the app itself, PowerApps Media), where the image files are stored when you upload them into PowerApps Media (a bit like storing on C: drive), so it should be the correct path.  The MyImages table contains the links to those image files, but not the files themselves.  We created the MyImages table to have a structured list of those links to be able to display them in a gallery.  Please let me know if you need more clarifications.  I am not sure why you are having issues in viewer mode, but maybe someone else does.

Hello,

 

For the app, there are 45-50 images and 25-30 PDFs. These won't need to be updated on a regular basis- only when information is updated and changes need to be made to the documents.

 

1) This seems like the most promising solution, and we're working on it!

 

2) Unfortunately, my internship ends at the end of this week, so I won't be here in a few weeks to watch for new developments. We tried DropBox earlier in the process and didn't have good luck connecting to PowerApps.

 

3) This makes sense but also doesn't seem to work. We'll keep moving forward with options 1 & 2 in the meantime!

 

Thanks again for all of your help!

OK, thanks for letting me know and good luck!

Hi Steelman70

I followed your detailed instructions, but unfortunatelly my screen does not show the images.

There is no error, simply empty image. What I am doing wrong?

See the screenshots bellow

 

Thanks,

Yakimo

 

Capture0.PNG

 

 

Capture3.PNG

 

 

Capture1.PNG

Helpful resources

Top Solution Authors
Top Kudoed Authors
Users online (3,162)