2011-12-02 7 views
5

Ho bisogno di scattare una foto con la fotocamera e allo stesso tempo mostrare un'immagine sovrapposta sulla parte superiore della visualizzazione della videocamera. Dopo aver scattato la foto, ho bisogno di salvare ciò che l'utente ha visto mentre scatta la foto. Qualcuno mi può suggerire? Per favore.Sovrapposizione immagini con immagine catturata dalla videocamera in Android

+0

Avete mai capito questo ?? Devo fare lo stesso. Ho ottenuto la fotocamera per lavorare con una sovrapposizione, ma non posso salvare i due insieme come un'unica immagine. –

+0

Possibile duplicato di [acquisizione dell'immagine dalla fotocamera e sovrapposizione di un'altra bitmap prima di salvarla] (https://stackoverflow.com/questions/9938801/capturing-image-from-camera-and-overlaying-another-bitmap-before-we -salvarla) –

risposta

-1
public void onPictureTaken(byte[] data, Camera camera){ 
    Bitmap cameraBitmap = BitmapFactory.decodeByteArray(data, 0, data.length); 

    wid = cameraBitmap.getWidth(); 
    hgt = cameraBitmap.getHeight(); 


Bitmap newImage = Bitmap.createBitmap(wid , hgt , Bitmap.Config.ARGB_8888); 

    Canvas canvas = new Canvas(newImage); 

    canvas.drawBitmap(cameraBitmap, 0f, 0f, null); 

    Drawable drawable = getResources().getDrawable(R.drawable.d); 
    drawable.setBounds(20 ,20, 260, 160); 
    drawable.draw(canvas); 

    File storagePath = new File(Environment.getExternalStorageDirectory() + "/Vampire Photos/"); 
    storagePath.mkdirs(); 

    File myImage = new File(storagePath,Long.toString(System.currentTimeMillis()) + ".jpg"); 

    try 
    { 
    FileOutputStream out = new FileOutputStream(myImage); 
    newImage.compress(Bitmap.CompressFormat.JPEG, 90, out); 


    out.flush(); 
    out.close(); 
    } 
    catch(FileNotFoundException e) 
    { 
    Log.d("In Saving File", e + ""); 
    } 
    catch(IOException e) 
    { 
    Log.d("In Saving File", e + ""); 
    } 

    camera.startPreview(); 

    drawable = null; 

    newImage.recycle(); 
    newImage = null; 

    cameraBitmap.recycle(); 
    cameraBitmap = null; 
} };