按名称将图像从相机保存到 sqlite

Posted

技术标签:

【中文标题】按名称将图像从相机保存到 sqlite【英文标题】:save image by name from camera into sqlite 【发布时间】:2012-02-08 05:24:48 【问题描述】:

对不起,我是这里的新手。我有一个方法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);

            
        
    

然后我在 Dbhelper 中有这样的方法 insertImage

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中按名称保存图片,以便我以后可以检索它们。

【问题讨论】:

【参考方案1】:

正如 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");

【讨论】:

【参考方案2】:

你的想法是从哪里得到的...为什么你会将图像插入数据库?只需存储文件在数据库中位置的链接...

虽然数据库提供 blob 选项,但您绝对不想一直这样做.. 会很麻烦。探索其他替代方案并停止对解决方案如此非黑即白。

【讨论】:

以上是关于按名称将图像从相机保存到 sqlite的主要内容,如果未能解决你的问题,请参考以下文章

使用名称中的当前日期和时间将图像保存到 sd 不起作用

如何避免将从相机胶卷中挑选的图像保存到相机胶卷? [iOS]

将图像从相机保存到数据库[重复]

将相机图像保存到应用程序包文件夹

使用手势将图像从 UIWebView 保存到相机胶卷

如何将图像从相机保存到 iPhone 画廊中的特定文件夹?