Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Image 从网络抖动中保存本地图像_Image_Flutter_Dart - Fatal编程技术网

Image 从网络抖动中保存本地图像

Image 从网络抖动中保存本地图像,image,flutter,dart,Image,Flutter,Dart,下面的flatter代码负责从后端节点恢复图像。js我要做的是将图像保存在特定路径的本地,但是当我运行下面的代码时,我有以下错误,我该如何解决? 我使用cachemanager在本地保存图像,但其中一个错误恰恰在cachemanager上,这是由于什么 错误: 'Image' is imported from both 'package:pdf/widgets.dart' and 'package:image/src/image.dart'. import 'package:ima

下面的flatter代码负责从后端节点恢复图像。js我要做的是将图像保存在特定路径的本地,但是当我运行下面的代码时,我有以下错误,我该如何解决? 我使用cachemanager在本地保存图像,但其中一个错误恰恰在cachemanager上,这是由于什么

错误:

'Image' is imported from both       
'package:pdf/widgets.dart' and 'package:image/src/image.dart'.
import 'package:image/image.dart';                                      
^^^^^                                                                   
lib/Model/Supporto.dart:20:31: Error: The getter 'CacheManager' isn't defined for the
class 'SaveFile'.
 - 'SaveFile' is from 'package:MyApp/Model/Supporto.dart' ('lib/Model/Supporto.dart').
Try correcting the name to the name of an existing getter, or defining a getter or
field named 'CacheManager'.
     var cacheManager = await CacheManager.getInstance()
    import 'dart:async';
    import 'package:pdf/widgets.dart';
    import 'package:MyApp/Controller/Rapporto.dart';
    import 'package:MyApp/Model/Cantiere.dart';
    import 'package:MyApp/Model/Supporto.dart';
    import 'package:MyApp/Model/Utente.dart' show Utente;
    import 'dart:io' as Io;
    import 'package:image/image.dart';

    import 'package:flutter_cache_manager/flutter_cache_manager.dart';
    import 'package:path_provider/path_provider.dart';

    //Classe che rapprresenta il rapporto
    class Rapporto {
      //Costruttore
      Rapporto(Utente u, Cantiere c) {
        this.utente = u;
        this.c = c;
      }

       //Funzione: permette di recuperare la testata del rapportino
       static Future<bool> getTestata() async{
         bool ret=false;
         String testata=await RapportoController.getTestata(); //http://localhost:8989/rapportini/immagine/testata
        if( testata!=null){
          if(testata.length>0){
             SaveFile sf=new SaveFile();
             final file = await sf.getImageFromNetwork(testata);
             //Recupero il path locale del dispositivo
             var path = await sf.localPath;
             Image image = decodeImage(file.readAsBytesSync());
             //Image thumbnail = copyResize(image, 120,120,);

        //Salvataggio immagine
        try{
          new Io.File('assets/temp/testata.jpg').writeAsBytesSync(encodePng(image));
           ret=true;
        }
        catch(ex){
          ret=false;
        }

          }
        } 
        return ret;
      }
    }

import 'dart:async';
import 'dart:io' as Io;
import 'package:image/image.dart';

import 'package:flutter_cache_manager/flutter_cache_manager.dart';
import 'package:path_provider/path_provider.dart';

//Classe che si occupa del salvataggio dei file sul filesystem
class SaveFile {

  //Recupero del path locale
  Future<String> get localPath async {
    final directory = await getApplicationDocumentsDirectory();

    return directory.path;
  }
  //Recupero dell'immagine dalla rete
   Future<Io.File> getImageFromNetwork(String url) async {

     var cacheManager = await CacheManager.getInstance();
     Io.File file = await cacheManager.getFile(url);
     return file;
   }

}
省道代码:

'Image' is imported from both       
'package:pdf/widgets.dart' and 'package:image/src/image.dart'.
import 'package:image/image.dart';                                      
^^^^^                                                                   
lib/Model/Supporto.dart:20:31: Error: The getter 'CacheManager' isn't defined for the
class 'SaveFile'.
 - 'SaveFile' is from 'package:MyApp/Model/Supporto.dart' ('lib/Model/Supporto.dart').
Try correcting the name to the name of an existing getter, or defining a getter or
field named 'CacheManager'.
     var cacheManager = await CacheManager.getInstance()
    import 'dart:async';
    import 'package:pdf/widgets.dart';
    import 'package:MyApp/Controller/Rapporto.dart';
    import 'package:MyApp/Model/Cantiere.dart';
    import 'package:MyApp/Model/Supporto.dart';
    import 'package:MyApp/Model/Utente.dart' show Utente;
    import 'dart:io' as Io;
    import 'package:image/image.dart';

    import 'package:flutter_cache_manager/flutter_cache_manager.dart';
    import 'package:path_provider/path_provider.dart';

    //Classe che rapprresenta il rapporto
    class Rapporto {
      //Costruttore
      Rapporto(Utente u, Cantiere c) {
        this.utente = u;
        this.c = c;
      }

       //Funzione: permette di recuperare la testata del rapportino
       static Future<bool> getTestata() async{
         bool ret=false;
         String testata=await RapportoController.getTestata(); //http://localhost:8989/rapportini/immagine/testata
        if( testata!=null){
          if(testata.length>0){
             SaveFile sf=new SaveFile();
             final file = await sf.getImageFromNetwork(testata);
             //Recupero il path locale del dispositivo
             var path = await sf.localPath;
             Image image = decodeImage(file.readAsBytesSync());
             //Image thumbnail = copyResize(image, 120,120,);

        //Salvataggio immagine
        try{
          new Io.File('assets/temp/testata.jpg').writeAsBytesSync(encodePng(image));
           ret=true;
        }
        catch(ex){
          ret=false;
        }

          }
        } 
        return ret;
      }
    }

import 'dart:async';
import 'dart:io' as Io;
import 'package:image/image.dart';

import 'package:flutter_cache_manager/flutter_cache_manager.dart';
import 'package:path_provider/path_provider.dart';

//Classe che si occupa del salvataggio dei file sul filesystem
class SaveFile {

  //Recupero del path locale
  Future<String> get localPath async {
    final directory = await getApplicationDocumentsDirectory();

    return directory.path;
  }
  //Recupero dell'immagine dalla rete
   Future<Io.File> getImageFromNetwork(String url) async {

     var cacheManager = await CacheManager.getInstance();
     Io.File file = await cacheManager.getFile(url);
     return file;
   }

}
导入'dart:async';
导入“package:pdf/widgets.dart”;
导入“包:MyApp/Controller/reporto.dart”;
导入“package:MyApp/Model/Cantiere.dart”;
导入“包:MyApp/Model/Supporto.dart”;
导入“包:MyApp/Model/utete.dart”show-utete;
导入“dart:io”作为io;
导入“package:image/image.dart”;
导入“包:flatter_cache_manager/flatter_cache_manager.dart”;
导入“package:path_provider/path_provider.dart”;
//拉普雷斯塔学院
班级报告员{
//科斯特鲁托雷
拉普托(中尉u,坎蒂埃c){
这个。中尉=u;
这个.c=c;
}
//Funzione:报告书的副本
静态未来getestata()异步{
bool-ret=假;
String testata=wait reportocontroller.getestata()//http://localhost:8989/rapportini/immagine/testata
if(testata!=null){
如果(测试长度>0){
SaveFile sf=新的SaveFile();
最终文件=等待sf.getImageFromNetwork(testata);
//重新配置路径区域设置del dispositivo
var path=await sf.localPath;
Image=decodeImage(file.readAsBytesSync());
//图像缩略图=复制调整大小(图像,120120,);
//萨尔瓦塔吉奥·伊马吉
试一试{
新Io.File('assets/temp/testata.jpg')。writeAsBytesSync(encodePng(image));
ret=真;
}
捕获(ex){
ret=假;
}
}
} 
返回ret;
}
}
导入“dart:async”;
导入“dart:io”作为io;
导入“package:image/image.dart”;
导入“包:flatter_cache_manager/flatter_cache_manager.dart”;
导入“package:path_provider/path_provider.dart”;
//文件系统中的文件类型
类保存文件{
//Recepero del path语言环境
未来获取本地路径异步{
最终目录=等待getApplicationDocumentsDirectory();
返回directory.path;
}
//达拉莱特酒店
未来getImageFromNetwork(字符串url)异步{
var cacheManager=wait cacheManager.getInstance();
Io.File File=wait cacheManager.getFile(url);
返回文件;
}
}

从错误中可以看出,以下两个文件包含相同的类映像

import 'package:image/image.dart';
import 'package:pdf/widgets.dart';
1) 最简单的解决方法是,如果您不需要这些文件中的任何一个,那么删除它,您就可以开始了

2) 如果您需要此文件中的两个文件,则必须使用Allians导入该文件,以便您可以指定要从while file创建的对象

import 'package:image/image.dart' as i;
import 'package:pdf/widgets.dart' as p;
现在,当您想从图像库创建对象时,请按照与pdf文件相同的方式创建

 i.classname variablename = i.classname();
“图像”是从两个位置导入的
“package:pdf/widgets.dart”和“package:image/src/image.dart”。 导入“package:image/image.dart”

看起来这两个导入的包都有一个名为
Image
的实例,请尝试使用
hide
忽略不需要的实例,如下所示:

import 'package:pdf/widgets.dart' hide Image;