Flutter Using NetworkImage on an AssetImage Field - flutter

With the map library I'm using in flutter app development, I am trying to display a marker image with a cdn url. The problem is that the image type that the Marker class requires is a class called OverlayImage (you can check it out in a link here: https://github.com/note11g/flutter_naver_map/blob/main/lib/src/overlay_image.dart) which takes in an AssetImage class only, but I have to use a NetworkImage in order to use online url.
So, I think the best is to find a way to convert NetworkImage to AssetImage which I am not even sure is possible since they are sibling classes. For now, when I pass a url to OverlayImage, it does not display anything due to the aforementioned problem. If converting to AssetImage doesn't work, then I think I might have to customize the library for my specific usage.
Any suggestions or problem analysis would help!

Related

How to write a custom Flutter `ImageProvider` to create an `Image` from `Stream<List<int>>`?

I have a function that returns Stream<List<int>> representing the image content that I want to display on an Image widget.
I know that I can transform this Stream into Uint8List and send it to the Image.memory constructor like this:
Image.memory(Uint8List.fromList(await fileStream.expand((element) => element).toList()));
However, using this method, I have to wait until the Stream is fully completed in order to display something. Which is not what I want.
My requirement is to display the part of the image that is already loaded and to continue updating the display as more bytes are received. This is something that you can see in web browsers when you open a large image, especially when the internet connection is slow.
How can I implement this using an ImageProvider in Flutter? I have no idea about how to start. I have read the official documentation but I can't figure it out. Can you point me to a well-detailed tutorial about this topic?

flutter - is it possible to use flutter code to represent something similar to this?

Is there a way to show the following with flutter?
As far as I know, only the corners of a container can be rounded off. I asked myself whether it is also possible to display something similar to the one in the picture below using flutter codes?
Since I don't even begin to know how and if you could do something like that, I am very curious about the answers, but I reckon that it could possibly be complicated.
YES!
It can be done by using path in flutter.
You can do each shape separately and then put them in a row.
Read this well organized article about path in flutter, then you can build all types of path. good luck :)
I see two main ways to approach this. Either use an image with the design from above, and use a Stack widget to add the text and icon on top.
The second option would be to use customPainter or possibly paths to make your custom shape. The documentation is here: https://api.flutter.dev/flutter/rendering/CustomPainter-class.html

Flutter NetworkImage vs cached_network_image

Flutter recommends to use cached_network_image here https://flutter.dev/docs/cookbook/images/cached-images. I used it and it worked fine. I tried NetworkImage and it worked, too.
I read from the doc that NetworkImage also caches the downloaded image locally. So what's the point in using cached_network_image instead of NetworkImage? Is there a comparison how their caching strategies differentiate from one another? Thanks!
The difference is significant and really helpful too...as you know fetching image from network takes time so cached network image provides you options for space holder to show when loading and error widget when can't load which are not there in NetworkImage. As a developer, you must be ready for every situation so that's the reason for recommending cached network images.
UPDATE:
ImageNetwork now has a loadingBuilder and errorbuilder parameters, so it too can now show a loading indicator similar to cached network image. But in CachedImageNetwork once the image is loaded it's cached in the system until the URL changes, which gives faster loading of the image every time and there are also many more features to explore please see official read me documents.
So still I prefer cachedNetworkImage until NetworkImage has similar features.
Hope you understand! Otherwise, let me know in the comments down below!
The difference is the cashed network image have a loading indicator when the image being fetched from the internet and show error icon if happen something error while fetching the image. While network image don't have this features. https://pub.dev/packages/cached_network_image

How to change photo in flutter?

How to change a photo in flutter? Well, that is, change its brightness, contrast, and so on. I want to do everything the same as on Telegram or Instagram. Please tell me, is it possible to implement this in Flutter, do you mean in Dart?
You can achieve those tasks using these packages :
image
extended_image

Flutter masking image with svg

So far I found in the documentation info about BlendMode in Flutter, but I haven't found the code example or something that will refer to exact usage of this enum in order to achieve masking in Flutter with image and svg file.
I found the flutter_svg library, but I haven't seen in the documentation that this feature is available. Also, I found a lot of examples for web(html/css), one of them is this.
So, is it possible and if yes how to achieve masking like this in Flutter?
Thanks