【问题标题】:Converting/Saving bitmap image as file in Android app在 Android 应用程序中将位图图像转换/保存为文件
【发布时间】:2014-09-07 00:39:19
【问题描述】:

我想将图像从我的 Android 应用 FTP 到我的服务器。问题是,我现在正在尝试这样做:

String data = client.storeFile("picture.png", myBitmap);

但您不能通过 storeFile 发送位图,只能发送文件。所以我的问题是:我怎样才能把这个位图放到一个文件中发送?我必须先将照片保存在手机上吗? (我宁愿不这样做)。有任何想法吗?谢谢。

        FTPClient client = new FTPClient();
        Bitmap myBitmap = my bitmap;

        try {
            client.connect("myhost");
            boolean login = client.login("un", "pw");
            client.enterLocalPassiveMode();
            client.setFileType(FTP.BINARY_FILE_TYPE);

            String data = client.storeFile("picture.png", myBitmap);
            //here is where I need a file, not bitmap

            logout = client.logout();
            client.disconnect();

【问题讨论】:

    标签: java android bitmap ftp


    【解决方案1】:

    尝试检查this thread。您可以将 context.getCacheDir() 更改为要在设备中存储位图文件的路径。是你要找的吗?有一个文件是从位图创建的。要检索 File 实体,只需使用

    File myFile = new File(filename);
    

    【讨论】:

    • 我实际上发现 .storeFile 接受 InputStream 而不是 File 所以这是我的问题
    【解决方案2】:

    我发现 .storeFile 接受 InputStream,而不是文件。所以我必须做的是发送我的位图:

    ByteArrayOutputStream bos = new ByteArrayOutputStream();
    myBitmap.compress(CompressFormat.PNG,
            0 /* ignored for PNG */, bos);
    byte[] bitmapdata = bos.toByteArray();
    ByteArrayInputStream bs = new ByteArrayInputStream(
            bitmapdata);
    
    FileInputStream in = new FileInputStream(new File(data));
    boolean result2 = client.storeFile("serverpath", bs);
    

    【讨论】:

      猜你喜欢
      • 2015-11-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-06-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多