I am using Flutter to develop a game. I would like to display 1-2 thousand small images that can move (via a AnimatedPositioned widget for example) on the screen. The resolution will be very low of each individual image of course. I'm unsure if Fluttter has a feature or is able to handle such a feature and would like to know if it's possible, and if so, best method to get there.
I've tried displaying 1000 images using Image.asset('my_image.PNG') in a GridView.builder(), using the profiler, my emulator was only able to achieve 6fps average.
Related
I created a Collection View for a app that showing photo specific by self app captured.
When showing the original photo it very slow e.g. the size of 5MB~10MB may be too large for showing.
Is there any way that I can get or even create the thumbnail for preview?
I tried for using C# standard way but the Image.Save( MemoryStream in MAUI is Windows platform only ...
First of all, I want to point out, that it is not a matter of choice.
Too big images will not be rendered, and you will see nothing but white space. (Learned that from testing it on Android.)
You can check this first:
https://learn.microsoft.com/en-us/dotnet/maui/user-interface/graphics/images?view=net-maui-7.0
I also use ImageSharp. (Despite the non-sense that happened recently, this is still a very good tool).
In any case, maybe it will be good to store the photo and the thumbnail separately, speaking of collection view, I do not think that it will perform well, if you need to mass-scale 5-10 MB photos. At least the devices I use cannot do this effectively.
I'm trying to merge two images into one image in my flutter application
I used Image library to do so
but when I use the decodeImage function in this way
image.decodeImage(images[0].readAsBytesSync());
to merg two images with large size
the app freezed for upto 1 minute
any solution to speed it up
Your app is not freezing, you just have to show loading indicator because this process take time.
show CircularProgressIndicator until this process doesn't finished.
At present one of my quiz game require, many images of flowers based on questions asked.
I can say total 250+ images with resolution of 512x435 each.
Plus other games textures get loaded at a time.
So when game screen get opened which showing all these images, its on the spot get crashed.
I am testing this on iPhone devices. So how to handle these many textures? I was stuck in this point.
Here is overview of flowers textures.
I was displaying all these in grid view so in one scrollable screen all get displayed.
Now I hope, you understand my side point of view.
You need to reduce the amount of these images that are loaded at once, try keeping most of those images rendering components disabled using some sort of managing script when you are not seeing them, rather than simply putting them off camera and try to moderate the amount that are rendered at once. If this does not work the problem might be that the total size of the images is bigger then the amount of ram your device has. Even the IPhone X has only 3GB of ram, check if your images in total are bigger than or close to the 1GB-3GB range, unity remote 5 is probably storing these images in ram or temporary memory. It is always a good idea to try to compress your images when working with a mobile device anyway, try to put them into a texture atlas or lower the quality of them until the iphone can handle it, you should never rely on mobile devices to render tons of images at once.
Wow. That's a lot of flowers....
Okay if you need all of those textures, and you're only displaying them in the editor, I'd group them into folders.
Even if you sort the blue from the red..... etc just human readable directories it will help out a lot as you won't load ALL of your images at once.
If you are loading all of those textures at runtime, which I don't think you would as unity optimizes your built executable, I would recommend against loading all of the images at once because you will use a lot of RAM, especially if those images are 512px or larger.
With in the application you could split them into 25 at a time on the screen and you could swipe to the right to go to the next 25 or swipe back to the previous. This is how i solved a similar problem in unity a while back.
My application contains more than 200 images each with size approx. 15 KB. I want to flip these image one by one. Is there will be any time lag for loading images? Is there any alternate method for doing that?
Anyone please help!
My application contains more than 200 images each with size approx. 15 KB. I want to flip these image one by one.
OK.
Is there will be any time lag for loading images?
Maybe. Try it and see. If there is, run your app under Instruments to see what really caused it.
Is there any alternate method for doing that?
You haven't proposed a primary method to be alternate to.
The main thing is that, since this is an iPhone app, you're probably not going to need 200 images loaded at once. Consider the Home screen: Those icons are about as small as is practical, and there are only 20 (24 on the iPad) of them on the screen at one time.
Assuming you want to allow scrolling or paging through the list, you'll probably want to keep a pageful up and a pageful down already loaded and flipped and ready to display, to make scrolling/paging faster. That's still only 60–72 images, and you can do half to two-thirds of them after displaying the visible 20–36.
Moreover, are the images always flipped? If so, then flip them at build time and copy the flipped images into your app, and do no flips at runtime. Then you're just displaying images.
I would like to take a stack of images (or potentially an array of URLs to download images) and display them in full screen, one at a time, using user swipes to smoothly animate the next image in the stack, using the iPhone SDK. Apple's Photo.app seems to do this. Additionally, if the image has not been retrieved yet, I'd like to display the progress indicator.
Can you point me to example code and explain how this technique would be implemented?
You need to use UIScrollview's page control mechanism. Apple has plenty of sample code, including one called, strangely enough, Page Control:
http://developer.apple.com/iphone/library/samplecode/PageControl/index.html
If you want any behavior beyond that, you'll have to roll it yourself.