Skip to content

Conversation

@FlynnOConnell
Copy link
Collaborator

@FlynnOConnell FlynnOConnell commented Nov 23, 2025

WIP, Relies on #868, might be simplified by #849.

image

This example could save another synthetic dataset to png or mp4 to showcase loading different sizes / # of dims.

Could also instead copy the imgui_basic example for the UI and put the open file / open folder in a menu:

image

@Vipitis
Copy link

Vipitis commented Nov 26, 2025

That is a really useful example. I looked at it briefly and might expand it with sequence thumbnails and an asnyc/threaded data loader as I have a lot of different sequences in a dataset to evaluate but they are on a slowish network drive.

@kushalkolar
Copy link
Member

If you can make a simple example that just uses imageio to load existing image files and just displays an ImageGraphic I think that would be simpler and I can merge it. I'm holding off on any PRs for ImageWidget until #951

That is a really useful example. I looked at it briefly and might expand it with sequence thumbnails and an asnyc/threaded data loader as I have a lot of different sequences in a dataset to evaluate but they are on a slowish network drive.

Sequences, as in image sequences? Sounds like making a numpy-like interface for lazy loading is the way to go, we do it a lot in another project: https://github.com/apasarkar/masknmf-toolbox/blob/main/masknmf/arrays/array_interfaces.py

@github-actions
Copy link

github-actions bot commented Nov 29, 2025

📚 Docs preview built and uploaded! https://www.fastplotlib.org/ver/examples-imgui-filedialog

"""Load an image file and update the graphic."""
try:
img_data = iio.imread(filepath)
self._image_graphic.data = img_data
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Need to create a new image graphic if the buffer shape doesn't match.

@Vipitis
Copy link

Vipitis commented Dec 10, 2025

Sequences, as in image sequences? Sounds like making a numpy-like interface for lazy loading is the way to go, we do it a lot in another project: https://github.com/apasarkar/masknmf-toolbox/blob/main/masknmf/arrays/array_interfaces.py

I got an easy solution by making the numpy array of the correct size as zeros (maybe even np.empty could work) and then I just write the pixel data into that using threading.Thread while the GUI already shows. Here the loading order is predetermined, so random jumps won't "lazy load". Will still look into the thumbnails when I have more time.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants