java图片加水印_JAVA_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > JAVA > java图片加水印

java图片加水印

 2018/5/24 15:11:55  dreamoftch  程序员俱乐部  我要评论(0)
  • 摘要:参考链接:http://www.codejava.net/java-se/graphics/adding-a-watermark-over-an-image-programmatically-using-java一:添加文字水印:/***Embedsatextualwatermarkoverasourceimagetoproduce*awatermarkedone.*@paramtextThetexttobeembeddedaswatermark
  • 标签:图片 Java

?

?

参考链接:http://www.codejava.net/java-se/graphics/adding-a-watermark-over-an-image-programmatically-using-java

?

一: 添加文字水印:

?

class="java" name="code">/**
 * Embeds a textual watermark over a source image to produce
 * a watermarked one.
 * @param text The text to be embedded as watermark.
 * @param sourceImageFile The source image file.
 * @param destImageFile The output image file.
 */
static void addTextWatermark(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);
    }
}

?

二:加图片水印:

?

/**
 * Embeds an image watermark over a source image to produce
 * a watermarked one.
 * @param watermarkImageFile The image file used as the watermark.
 * @param sourceImageFile The source image file.
 * @param destImageFile The output image file.
 */
static void addImageWatermark(File watermarkImageFile, File sourceImageFile, File destImageFile) {
    try {
        BufferedImage sourceImage = ImageIO.read(sourceImageFile);
        BufferedImage watermarkImage = ImageIO.read(watermarkImageFile);
 
        // initializes necessary graphic properties
        Graphics2D g2d = (Graphics2D) sourceImage.getGraphics();
        AlphaComposite alphaChannel = AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 0.3f);
        g2d.setComposite(alphaChannel);
 
        // calculates the coordinate where the image is painted
        int topLeftX = (sourceImage.getWidth() - watermarkImage.getWidth()) / 2;
        int topLeftY = (sourceImage.getHeight() - watermarkImage.getHeight()) / 2;
 
        // paints the image watermark
        g2d.drawImage(watermarkImage, topLeftX, topLeftY, null);
 
        ImageIO.write(sourceImage, "png", destImageFile);
        g2d.dispose();
 
        System.out.println("The image watermark is added to the image.");
 
    } catch (IOException ex) {
        System.err.println(ex);
    }
}

?

?

上一篇: 《Java函数式编程》PDF 下一篇: 没有下一篇了!
发表评论
用户名: 匿名