2016-06-13 6 views
1

J'essaie d'ajouter une marque d'eau sur l'image et la vidéo. Pour l'image, je suis la solution comme ci-dessousJava/JSP: Comment ajouter WaterMark en vidéo

code de marquage d'eau Image

Méthode

static void addWatermarkOnImage(String text, File sourceImageFile, File destImageFile) { 
    try { 
     BufferedImage sourceImage = ImageIO.read(sourceImageFile); 
     Graphics2D g2d = (Graphics2D) sourceImage.getGraphics(); 

     // initializes necessary graphic properties 
     AlphaComposite alphaChannel = AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 0.1f); 
     g2d.setComposite(alphaChannel); 
     g2d.setColor(Color.BLUE); 
     g2d.setFont(new Font("Arial", Font.BOLD, 64)); 
     FontMetrics fontMetrics = g2d.getFontMetrics(); 
     Rectangle2D rect = fontMetrics.getStringBounds(text, g2d); 

     // calculates the coordinate where the String is painted 
     int centerX = (sourceImage.getWidth() - (int) rect.getWidth())/2; 
     int centerY = sourceImage.getHeight()/2; 

     // paints the textual watermark 
     g2d.drawString(text, centerX, centerY); 

     ImageIO.write(sourceImage, "png", destImageFile); 
     g2d.dispose(); 

     //System.out.println("The tex watermark is added to the image."); 

    } catch (IOException ex) { 
     System.err.println(ex); 
    } 
} 

Méthode appelant

File sourceImageFile = new File("e:/Test/Watermark/SwingEmailSender.png"); 
File destImageFile = new File("e:/Test/Watermark/text_watermarked.png"); 

addTextWatermark("CodeJava", sourceImageFile, destImageFile); 

par la mise en jachère image ci-dessus code Watermarking est travail parfait y pour moi. En cas de marquage vidéo, j'ai essayé beaucoup d'exemples en ligne mais rien n'a été utile pour moi. Donc, quelqu'un m'aide pour le marquage de l'eau vidéo dans java/jsp

Répondre

0

L'outil open source le plus commun et le plus populaire pour mettre un filigrane dans une vidéo (ou un texte comme dans une autre question qui vient de se poser) est probablement ffmpeg:

ffmpeg peut être utilisé dans la ligne de commande ou par programmation dans le cadre d'une application (voir les permis soigneusement pour vous assurer qu'il répond à vos besoins si vous souhaitez distribuer, etc.). Pour l'utiliser par programme, vous pouvez utiliser l'outil de ligne de commande dans un wrapper ou utiliser directement les bibliothèques sur lesquelles il est construit. L'utilisation directe des bibliothèques (libavcodec, libavutil, libavformat, libavfilter, libavdevice, libswscale et libswresample - voir la page about au lien ci-dessus) devrait être plus efficace et permettre un meilleur contrôle, mais l'approche wrapper est toujours populaire Il peut être plus simple à mettre en œuvre au début et il existe une mine d'informations en ligne sur la syntaxe de la ligne de commande pour réaliser à peu près tout ce que vous voulez faire, ce que vous obtenez de tirer parti de cette approche.

Les bibliothèques sont également basées sur c de sorte que vous aurez besoin d'une interface (par exemple JNI) à eux de toute façon.

Un exemple d'une enveloppe Java autour ffmpeg est:

Il existe de nombreux exemples en ligne d'utiliser l'outil de ffmpeg pour ajouter un watermarking à une vidéo - un exemple est ici, mais il vaut la peine googler pour trouver la dernière annonce la syntaxe ne change au fil du temps: