2015-10-08 5 views
-2

Je voudrais savoir comment marquer l'appareil photo pendant que je prends une photo. Je veux mettre une image déjà prise pour ressembler à une carte à la personne qui prend la nouvelle photo. J'utilise Android Studio pour le faire. Comme ceci: Je vais prendre une photo, avant de prendre la photo Je peux voir une marque d'eau d'une image que j'ai, et je peux positionner l'appareil photo pour être proche de cette image de marque d'eau et puis je prends la photo . C'est comme si l'image de marque d'eau était un mdoel à la photo.Comment marquer l'eau d'une caméra avec une image?

+0

Si vous utilisez l'appareil photo intention, vous aurez besoin d'un accès en écriture au fichier image qui correspond à 'onActivityResult()'. Avec l'application de caméra personnalisée, vous recevez l'image (normalement, sous la forme d'un octet JPEG []) dans [Camera.PictureCallback] (http://developer.android.com/intl/zh-tw/reference/android/hardware/Camera. PictureCallback.html) et vous pouvez manipuler cette image à votre goût. –

+0

Je veux marquer l'aperçu de la caméra, pas l'image. Mais tks pour l'aide. –

+0

Votre modification rend la question plus claire. Vous pouvez superposer une vue sur l'aperçu de la caméra. Le plus simple est de montrer le "filigrane" comme un ImageView semi-transparent. –

Répondre

0

En fait idk comment filigrane la caméra, mais peut être le code suivant vous aidera

applyWaterMarkEffect(src, "Water mark text", 200, 200, Color.GREEN, 80, 24, false) 


public Bitmap applyWaterMarkEffect(Bitmap src, String watermark, int x, int y, int color, int alpha, int size, boolean underline) { 
     int w = src.getWidth(); 
     int h = src.getHeight(); 
     Bitmap result = Bitmap.createBitmap(w, h, src.getConfig()); 

     Canvas canvas = new Canvas(result); 
     canvas.drawBitmap(src, 0, 0, null); 

     Paint paint = new Paint(); 
     paint.setColor(color); 
     paint.setAlpha(alpha); 
     paint.setTextSize(size); 
     paint.setAntiAlias(true); 
     paint.setUnderlineText(underline); 
     canvas.drawText(watermark, x, y, paint); 

     return result; 
    } 
+0

Ce n'est pas ce que je cherchais mais votre réponse m'a aidé à trouver le bon dans ce lien: http://stackoverflow.com/questions/2933882/how-to-draw-an-overlay-on-a-surfaceview -utilisé-par-caméra-sur-android et puis j'ai utilisé votre code pour obtenir ce que je cherchais. Donc merci. –

+0

Bienvenue et m heureux de vous aider –