1. 程式人生 > >Java開發文字水印

Java開發文字水印

這個跟上次的圖片水印差不多,全部封裝在一個方法裡,然後使用main方法測試,在本地生成圖片就可以看到效果了

效果圖
這裡寫圖片描述

/**
     * 列印文字水印
     * 
     * @param text
     *            文字內容
     * @param targetImg
     *            需要被打水印的圖片
     * @param fontName
     *            字型名
     * @param fontStyle
     *            字型樣式
     * @param fontSize
     *            字型大小
     * @param
x * 座標 * @param y * 座標 * @return void */
public static void getTextMark(String text, String targetImg, String fontName, int fontStyle, int fontSize, int x, int y) { // 例項化需要被打水印的圖片 File file = new File(targetImg); try
{ // 將檔案轉換成圖片的物件 Image img = ImageIO.read(file); // 獲取圖片的寬度與高度 int width = img.getWidth(null); int height = img.getHeight(null); // 將圖片載入到記憶體中 BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_BGR); // 繪製圖片
Graphics g = image.createGraphics(); // 繪製指定影象 縮放到指定矩形區域 這裡需要從0 0 座標開始 g.drawImage(img, 0, 0, width, height, null); //設定字型顏色 g.setColor(Color.ORANGE); //設定字型樣式 g.setFont(new Font(fontName,fontStyle,fontSize)); //打水印 g.drawString(text, x, y); //// 結束對檔案物件的處理 g.dispose(); // 獲取檔案路勁 String pathName = file.getParentFile().getAbsolutePath(); // 給檔案命名 String fileName = pathName + "/" + new Date().getTime() + ".jpg"; System.out.println(fileName); // 輸出列印好水印的檔案 FileOutputStream fos = new FileOutputStream(fileName); // JPEGCodec 用來建立一個和指定輸出流關聯 JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(fos); encoder.encode(image); // 關閉流 fos.close(); System.out.println("文字水印列印成功!"); } catch (Exception e) { e.printStackTrace(); } }
main方法測試
public static void main(String[] args) {    
        String text = "晚安各位!";
        String textImg = "C:\\Users\\Administrator\\Desktop\\array\\time\\3.jpg";
        getTextMark(text,textImg,"微軟雅黑",16,45,100,200);
    }