【问题标题】:Java/JSP: How to add WaterMark on VideoJava/JSP:如何在视频上添加水印
【发布时间】:2016-06-13 12:08:10
【问题描述】:

我正在尝试在图像和视频上添加水印。对于图像,我得到了如下解决方案

图片水印代码

方法

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);
    }
}

方法调用

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

addTextWatermark("CodeJava", sourceImageFile, destImageFile);

通过搁置上面的代码图像 WaterMarking 对我来说非常有效。在视频水印的情况下,我在网上尝试了很多例子,但对我没有任何帮助。所以,请任何人帮助我在 java/jsp 中进行视频水标记

【问题讨论】:

    标签: java jsp video watermark


    【解决方案1】:

    在视频(或刚刚提出的另一个问题中的文本)中添加水印的最常见和流行的开源工具可能是 ffmpeg:

    ffmpeg 可以在命令行中使用,也可以作为应用程序的一部分以编程方式使用(如果您想分发等,请仔细查看许可以确保它满足您的需求)。

    要以编程方式使用它,您可以使用包装器中的命令行工具或直接使用它所构建的库。

    直接使用库(libavcodec、libavutil、libavformat、libavfilter、libavdevice、libswscale 和 libswresample - 请参阅上面链接中的 about 页面)应该更有效并允许更好的控制等,但包装方法仍然很受欢迎,因为它一开始可以更简单地实现,并且有大量关于命令行语法的在线信息可以实现您可能想要做的几乎任何事情,您可以利用这种方法。

    这些库也是基于 c 的,因此无论如何您都需要一些接口(例如 JNI)。

    一个围绕 ffmpeg 的 Java 包装器示例是:

    有许多使用 ffmpeg 工具为视频添加水印的在线示例 - 这里有一个示例,但值得在谷歌上搜索找到语法随时间发生变化的最新广告:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-28
      • 1970-01-01
      • 2020-12-05
      • 1970-01-01
      • 2017-03-24
      相关资源
      最近更新 更多