Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/6.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
Java 将图像作为文件加载_Java_Android_Image_File_Bitmap - Fatal编程技术网

Java 将图像作为文件加载

Java 将图像作为文件加载,java,android,image,file,bitmap,Java,Android,Image,File,Bitmap,例如,如何将image.jpg加载为文件 准确地说,此文件是通过以下方式保存的: public static void saveFile(Context context, Bitmap bitmap, String picName) { FileOutputStream fileOutputStream; try { fileOutputStream = context.openFileOutput(picName, Context.MODE_PRIVATE);

例如,如何将image.jpg加载为文件

准确地说,此文件是通过以下方式保存的:

public static void saveFile(Context context, Bitmap bitmap, String picName) {
    FileOutputStream fileOutputStream;
    try {
        fileOutputStream = context.openFileOutput(picName, Context.MODE_PRIVATE);
        bitmap.compress(Bitmap.CompressFormat.JPEG, 30, fileOutputStream);
        fileOutputStream.close();
    } catch (FileNotFoundException e) {
        Log.d(TAG, "file not found");
        e.printStackTrace();
    } catch (IOException e) {
        Log.d(TAG, "io exception");
        e.printStackTrace();
    }

}
所以我只有这个名字作为参考

我试过:

public static Bitmap loadBitmap(Context context, String picName) {

    Bitmap bitmap = null;
    FileInputStream fileInputStream;
    try {
        fileInputStream = context.openFileInput(picName);
        bitmap = BitmapFactory.decodeStream(fileInputStream);
        fileInputStream.close();

    } catch (FileNotFoundException e) {
        Log.d(TAG, "file not found");
        e.printStackTrace();
    } catch (IOException e) {
        Log.d(TAG, "io exception");
        e.printStackTrace();
    }
    return bitmap;
}

它可以工作,但我需要它是一个文件

如果您希望使用文件对象,我建议您始终如一地这样做。使用GetFileDir或getCacheDir作为构建文件的基础,以确定文件的存放位置,例如,新建文件getCacheDir、picName。然后,对I/O使用FileOutputStream和FileInputStream,替换openFileOutput和openFileInput。

该文件是来自照相机的图片。我需要在ImageView中显示/缩小它的大小。我只需要它作为一个文件通过POST请求发送它。在那个时候获取位图并转换它不是更有效吗?@一个机器人:在那个时候获取位图并转换它不是更有效吗?-抱歉,我不明白你的意思。我的意思是,当我需要在post请求中发送位图时,使用位图进行显示并将其转换为文件不是更有效吗?@a droid:如果你将额外的输出与动作图像捕获一起使用,那么你已经有了一个文件,不管额外的输出放在哪里。创建第二个文件的效率低于不创建第二个文件。如果未使用EXTRA_输出,并且正在使用getParcelableExtradata中的缩略图位图,则可能会延迟创建文件,直到需要时为止,尤其是当用户可能不选择上载文件时,例如,按BACK键而不是单击upload photo action bar项。