сохранить изображение по имени с камеры в sqlite - PullRequest
0 голосов
/ 08 февраля 2012

Извините, я новичок здесь.У меня есть метод startCamera, как это:

public void startCamera() 
{

        Cursor c=helper.getById(almagId);
        c.moveToFirst();    
        fileName = helper.getKdStore(c)+ waktu + ".jpg";         
        Log.d("ANDRO_CAMERA", "Starting camera on the phone...");
        //String fileName = "testphoto.jpg";
        ContentValues values = new ContentValues();
        values.put(MediaStore.Images.Media.TITLE, fileName);
        values.put(MediaStore.Images.Media.DESCRIPTION,"Image capture by camera");
        values.put(MediaStore.Images.Media.MIME_TYPE, "image/jpeg");
        imageUri = getContentResolver().insert(
                MediaStore.Images.Media.EXTERNAL_CONTENT_URI, values);
        Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
        intent.putExtra(MediaStore.EXTRA_OUTPUT, imageUri);
        intent.putExtra(MediaStore.EXTRA_VIDEO_QUALITY, 1);
        startActivityForResult(intent, IMAGE_CAPTURE);
        //return intent;
}

protected void onActivityResult(int requestCode, int resultCode, Intent data) 
{
       if (requestCode == IMAGE_CAPTURE) 
        {
            if (resultCode == RESULT_OK)
            {
                Log.d("ANDRO_CAMERA","Picture taken!!!");
                imageView.setImageURI(imageUri);

            }
        }
    }

, а затем у меня есть метод insertImage в Dbhelper, как это

public void insertPicture(String image1,String image2,String image3){

    //waktu = new Date().toString();
    ContentValues im = new ContentValues();
    //im.put("kdstore", kdstore);
    im.put("image1", image1);
    im.put("image2", image2);
    im.put("image3", image3);

    System.out.println();
    getWritableDatabase().insert("image", "name", im);
}

Я хочу сохранить изображения по имени в sqliteчтобы я мог получить их позже.

Ответы [ 2 ]

2 голосов
/ 08 февраля 2012

Как сказал Jox Traex, нет необходимости хранить изображение в базе данных. Это будет легко, если вы сохраните только путь к изображению, а затем получите изображение только по тому же пути.Вы можете сослаться на пример кода

  MimeBodyPart attachmentPart = new MimeBodyPart();
    FileDataSource fileDataSource = new FileDataSource(path_img) {
        @Override
        public String getContentType() {
            return "image/jpg";
        }
    };
    attachmentPart.setDataHandler(new DataHandler(fileDataSource));
    attachmentPart.setFileName("image.jpg");
1 голос
/ 08 февраля 2012

Откуда вы, люди, берете вашу идею ... ПОЧЕМУ Вы бы вставили изображение в базу данных?Просто сохраните ссылку на то, где файл находится в базе данных ...

В то время как базы данных предлагают опцию BLOB-объектов, вы определенно не хотите делать это все время ... это было бы грязно.Исследуйте другие альтернативы и STOP в черно-белых тонах о решении.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...