簡體   English   中英

Android:將圖片保存到目錄

[英]Android: Saving an image to directory

我正在嘗試將位圖保存到我的目錄中,但是沒有一點麻煩。

我的應用程序的作用是:

1.通過意圖打開內置的相機應用程序。

public void openCamera() {
        Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
        File file = new File(Environment.getExternalStorageDirectory()+ File.separator + "image.jpg");
        takePictureIntent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(file));
        startActivityForResult(takePictureIntent, REQUEST_IMAGE_CAPTURE);
    }

2.然后將圖片意圖存儲到“ REQUEST_IMAGE_CAPTURE”中,並將圖像保存到臨時目錄中。

startActivityForResult(takePictureIntent, REQUEST_IMAGE_CAPTURE);

3,然后將其轉換為位圖並從tmp目錄加載到圖像視圖中

 protected void onActivityResult(int requestCode, int resultCode, Intent data){
        //Check that request code matches ours:
        if (requestCode == REQUEST_IMAGE_CAPTURE){
            //Get our saved file into a bitmap object:
            File file = new File(Environment.getExternalStorageDirectory()+File.separator + "image.jpg");
            Bitmap image = decodeSampledBitmapFromFile(file.getAbsolutePath(), 1000, 700);
            imageView.setImageBitmap(image);
        }
    }

現在,如何將imageview中的位圖保存到圖片目錄中?

我已將權限輸入清單中

<uses-feature android:name="android.hardware.camera"
    android:required="true" />
...
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
...
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/> 

使用bitmap.compress可以將位圖定向到OutputStream。

例如:

FileOutputStream fo = new FileOutputStream(filename);
bmp.compress(Bitmap.CompressFormat.PNG, 100, fo); // bmp is your Bitmap 
   private void saveImage(Bitmap bmp, String filePath){

    File file = new File(filePath);
    FileOutputStream fo = null;
    try {
        boolean result = file.createNewFile(); // true if created, false if exists or failed
        fo = new FileOutputStream(file);
        bmp.compress(Bitmap.CompressFormat.JPEG, IMAGE_QUALITY_PERCENT, fo);
    } catch (Exception e) {
        e.printStackTrace();
    } finally {
        if (fo != null) {
            try {
                fo.flush();
                fo.close();
            } catch (Exception ignored) {

            }
        }
    }
}

請注意,filePath是目錄+文件名,例如/sdcard/iamges/1.jpg

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM