Add a watermark is kind easy!!! if you look into examples you might
see you have almost all that you need to perform it!
Simple solution:D
public static void main(String[] args) throws IOException{
if (args.length < 2){
System.out.println("Usage: ModifyAudioAndVideo <inputFileName>
<outputFileName>");
System.exit(-1);
}
File inputFile = new File(args[0]);
if (!(inputFile.exists())){
System.out.println("Input file does not exist: " + inputFile);
System.exit(-1);
}
File outputFile = new File(args[1]);
IMediaReader reader = ToolFactory.makeReader(inputFile.toString());
reader.setBufferedImageTypeToGenerate(5);
IMediaWriter writer = ToolFactory.makeWriter(outputFile.toString(), reader);
File waterMarkFile = new File("pearls-watermark.png");
BufferedImage waterMark = ImageIO.read(waterMarkFile);
IMediaTool addWatermark = new WatermarkTool(waterMark);
reader.addListener(addWatermark);
addWatermark.addListener(writer);
//show conversion result window
writer.addListener(ToolFactory.makeViewer());
while (reader.readPacket() == null);
}
static class WatermarkTool extends MediaToolAdapter{
BufferedImage waterMark = null;
private static final int __WATERMARK_WIDTH = 100;
private static final int __WATERMARK_HEIGHT = 50;
public WatermarkTool(BufferedImage waterMark) {
this.waterMark = waterMark;
}
public void onVideoPicture(IVideoPictureEvent event){
BufferedImage image = event.getImage();
Graphics2D g = image.createGraphics();
g.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER,
0.4f));// 40% transp
g.drawImage(waterMark, image.getWidth() - waterMark.getWidth(),
image.getHeight() - waterMark.getHeight(), null);// draw in lower
right corner
//Image watermarkLogo =
waterMark.getScaledInstance(__WATERMARK_WIDTH, __WATERMARK_HEIGHT, 0);
//g.drawImage(watermarkLogo, image.getWidth() - __WATERMARK_WIDTH,
image.getHeight() - __WATERMARK_HEIGHT, null);// draw in lower right
corner
super.onVideoPicture(event);
> To unsubscribe from this group, send email to
xuggler-user...@googlegroups.com.