在Android应用中将位图图像转换/保存为文件

时间:2014-07-16 13:04:31

标签: java android bitmap ftp

我想将我的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();

2 个答案:

答案 0 :(得分:1)

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

File myFile = new File(filename);

答案 1 :(得分:0)

我发现.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);
相关问题