标签: flutter-image

Flutter Image 对象到 ImageProvider

我不得不从 base64 读取我的图像源来抖动Image对象。

Image img = Image.memory(base64Decode(BASE64_STRING));
Run Code Online (Sandbox Code Playgroud)

然后我想把图像作为容器背景。但 DecorationImage 只接受ImageProvider

如何将图像转换为 ImageProvider?或者有没有其他方法可以将 base64 图像提供给 ImageProvider?

Container(
  decoration: BoxDecoration(
    color: Colors.green,
    image: DecorationImage(
      image: img // <-- Expecting ImageProvider
    )
)
Run Code Online (Sandbox Code Playgroud)

flutter flutter-image

35
推荐指数
4
解决办法
3万
查看次数

ListTile 中的前导图像溢出

我有一个ListViewListTile。每个ListTile都有一个titlewith TextsubtitlewithTextleadingwith Image

现在,图像太大并且垂直延伸到下一行,与那里的图像重叠。

如何确保图像保持在边界内?

编辑:

我不想给图像一个固定的大小,而是让它调整到由标题+副标题的固有高度给出的列表图块的高度。

flutter flutter-layout flutter-image

16
推荐指数
2
解决办法
3万
查看次数

使用图像小部件中的不透明度参数更改 Image.asset 不透明度

我有一个简单的图像,我想将其设置为半透明。我已经看到了一些方法来做到这一点,但他们都没有谈论接受类型为 widget 的opacityown参数。是否可以使用此参数永久更改不透明度?Image.assetAnimation

Image.asset(
  "assets/images/triangles_small.png",
  height: 380,
),
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

dart flutter flutter-animation flutter-image

12
推荐指数
2
解决办法
2万
查看次数

如何在颤振中使用混合混合模式?

我尝试过似乎仅适用于颜色的混合模式,即 colorblendmode。有什么方法可以实现CSSmix-blend-mode吗?

  Stack(
        children: <Widget>[
          Image.asset(
            "asset/text.PNG",
            height: double.maxFinite,
            width: double.maxFinite,
            fit: BoxFit.fitHeight,
            color: Colors.red,
            colorBlendMode: BlendMode.multiply,
          ),
          Image.asset("asset/face.jpg",
              width: double.maxFinite,
              fit: BoxFit.fitHeight,
              color: Colors.red,
              colorBlendMode: BlendMode.multiply),
        ],
      ),
Run Code Online (Sandbox Code Playgroud)

这会导致类似: 上面代码的输出

我想从 CSS 中得到什么 输出

flutter mix-blend-mode flutter-image

10
推荐指数
2
解决办法
1918
查看次数

如何防止缓存图片受到网络抖动的影响?

我已尝试以下所有方法Widget从网络加载图像:

  • Image.network()
  • CachedNetworkImage()

还有他们的ImageProvider

  • NetworkImage
  • CachedNetworkImageProvider

无法bool选择不缓存图像。我发现的唯一方法是加载ImageProvider类似的内容initState(),然后evict()立即调用。

我真的不知道这是否真的有效,或者这是否是最好的方法......

有什么方法可以阻止“本地”网络缓存吗?

dart flutter flutter-image

9
推荐指数
2
解决办法
7177
查看次数

如何在 Flutter 中获取使用图像选择器插件选择的图像的原始路径而不是复制到缓存?

我正在制作一个 Android 应用程序,并且在使用图像选择器插件时;

final pickedFile = await ImagePicker().getImage(source: ImageSource.gallery);
Run Code Online (Sandbox Code Playgroud)
File image = File(pickedFile.path);
Run Code Online (Sandbox Code Playgroud)

“图像”是应用程序缓存中原始图像的副本,但是,我想直接使用原始图像的路径将其保存在我的应用程序中,因为我不希望应用程序缓存大小增加。我看到不推荐使用的方法“pickImage”完成了这一点(不复制到缓存),但新的“getImage”似乎自动复制,并且“图像的路径”是缓存图像的路径。

如何在不缓存的情况下仅获取所选图像的原始路径?(我假设使用原始文件的路径仍然可以在应用程序中显示它FileImage(File(originalPath)),这是正确的假设吗?)

dart flutter flutter-image

8
推荐指数
1
解决办法
1087
查看次数

如何从 Flutter-web 中的小部件创建图像?

为了在谷歌地图google_maps_flutter上显示自定义小部件,我使用了一个非常方便的函数,可以将任何Widget(包括包含图像的)转换为Image,然后将其转换为Uint8List我需要的。它在 iOS 和 Android 上运行良好。

Future createImageFromWidget( Widget widget){
  final RenderRepaintBoundary repaintBoundary = RenderRepaintBoundary();
  final RenderView renderView = RenderView(
    child: RenderPositionedBox(alignment: Alignment.center, child: repaintBoundary),
    configuration: ViewConfiguration(size: const Size.square(300.0), devicePixelRatio: ui.window.devicePixelRatio),
    window: null,
  );

  final PipelineOwner pipelineOwner = PipelineOwner()..rootNode = renderView;
  renderView.prepareInitialFrame();

  final BuildOwner buildOwner = BuildOwner(focusManager: FocusManager());
  final RenderObjectToWidgetElement<RenderBox> rootElement = RenderObjectToWidgetAdapter<RenderBox>(
    container: repaintBoundary,
    child: Directionality(
      textDirection: TextDirection.ltr,
      child: IntrinsicHeight(child: IntrinsicWidth(child: widget)),
    ),
  ).attachToRenderTree(buildOwner);

  buildOwner..buildScope(rootElement)..finalizeTree();
  pipelineOwner..flushLayout()..flushCompositingBits()..flushPaint();

  return repaintBoundary.toImage(pixelRatio: ui.window.devicePixelRatio)
    .then((image) => image.toByteData(format: …
Run Code Online (Sandbox Code Playgroud)

google-maps google-maps-markers flutter flutter-image flutter-web

8
推荐指数
1
解决办法
4525
查看次数

重新绘制图像时出现白色闪烁[颤动]

我正在尝试构建一个具有给定宽度和高度的图像网格,将它们包裹在里面Containers,并fit: BoxFit.fill在选择图像时使用能够设置边框(我不关心保持图像长宽比,我想每个容器的总宽度和高度相同)。

问题是,当图像被点击后重新绘制时,我注意到出现白色闪烁。当图像较少时,这似乎不会发生,但当图像超过 15 个时,就会出现噪声。

我尝试添加gaplessPlayback: true图像小部件,正如我在此处找到的那样,但这并没有解决我的问题。

这是显示我的问题的 gif(我使用了 16 张图像,尺寸为 1920x1080):

编辑:

我忘记指出这只是一个例子,我在代码中使用了边框,但就我而言,我还想向容器添加填充以使图像变小(就像在 android 照片库中一样),这意味着点击的图像每次都应该重新绘制。

在此输入图像描述

这是我的代码:

import 'dart:io';

import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';

void main() {
  // See https://github.com/flutter/flutter/wiki/Desktop-shells#target-platform-override
  debugDefaultTargetPlatformOverride = TargetPlatform.fuchsia;
  runApp(new MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      debugShowCheckedModeBanner: false,
      home: Scaffold(body: ImageGridView()),
    );
  }
}

class ImageGridView extends StatelessWidget {
  List<File> _fileList = [];
  ImageGridView(){
    _fileList = [
        File('C:/flutter/img/1.jpg'),
        File('C:/flutter/img/3.jpg'),
        File('C:/flutter/img/4.jpg'),
        File('C:/flutter/img/5.jpg'), …
Run Code Online (Sandbox Code Playgroud)

image flutter flutter-image flutter-desktop

7
推荐指数
2
解决办法
9550
查看次数

当 Image.network() 失败时无法捕获 NetworkImageLoadException

我使用 Image.network() 显示来自 URL 的图像,这就是我使用它的方式

Image image = Image.network(
      _auth.currentUser!.photoURL!,
      width: 100.getWidth(context),
      height: 100.getWidth(context),
      frameBuilder: (context, child, frame, wasSynchronouslyLoaded) {
        return wasSynchronouslyLoaded
            ? child
            : _profileImagePlaceholder(context);
      },
      loadingBuilder: (context, child, loadingProgress) {
        return loadingProgress == null
            ? child
            : _profileImagePlaceholder(context);
      },
      errorBuilder: (context, error, stackTrace) {
        return _profileImagePlaceholder(context);
      },
    );
Run Code Online (Sandbox Code Playgroud)

但即使当我设置 errorBuilder 甚至用 try/catch 包装整个事情时这NetworkImageLoadException仍然显示

完全例外

The following NetworkImageLoadException was thrown resolving an image codec:
HTTP request failed, statusCode: 403,


When the exception was thrown, this was the …
Run Code Online (Sandbox Code Playgroud)

flutter flutter-image

6
推荐指数
1
解决办法
4402
查看次数

从本地主机检索数据时,连接在接收数据(通过 NetworkImage 的图像)时关闭

从网络本地主机检索图像文件时,http://10.0.2.2:8000出现以下错误:
\nConnection closed while receiving data.

\n

当我从 URL 调用数据(仅限图像)时出现错误。
\n请注意,我使用的是本地服务器。
\nI\xe2\x80\x99m 试图将图像放入其中Image.network(),这是图像代码。

\n
Image.network(urllink)\n
Run Code Online (Sandbox Code Playgroud)\n

相同的 URL 在本地主机浏览器和邮递员中也可以正常工作。
\n我正在尝试检索装饰框小部件中的图像。
\n当我在网络图像函数中粘贴直接 url 时,相同的 url 和图像可以工作,但当我尝试通过 api 获取照片名时发生错误。\n我得到的照片名和 API 工作正常。没有任何问题。

\n
 child: FutureBuilder<MatrimonyProfileData>(\n                  future: futureMData,\n                  builder: (context, snapshot) {\n                    if (snapshot.hasData) {\n                      // String matrimonyUrl = \'/$matrimonyprofileUrl\';\n                      String photoName = snapshot.data!.matrimonies.photo;\n\n                      print(photoName);\n                      //var fullUrl = _url + apiUrl\n\n                      var url;\n                      // urllink = \'http://10.0.2.2:8000/matrimony/profile.jpg\';\n\n                      **url = (webLink + matrimony + photoName);\n                      print(url);\n                      String urllink = Url;**\n …
Run Code Online (Sandbox Code Playgroud)

flutter flutter-test flutter-dependencies flutter-layout flutter-image

6
推荐指数
1
解决办法
3583
查看次数