欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

如何利用Java在圖片上添加文字水印效果

 更新時間:2022年01月14日 11:52:58   作者:zyqok  
最近發(fā)現(xiàn)經(jīng)常被別的網(wǎng)站盜用,而且不注明出處,因此不得不加上水印,這篇文章主要給大家介紹了關(guān)于如何利用Java在圖片上添加文字水印效果的相關(guān)資料,需要的朋友可以參考下

前言

今天分享一個:通過Java代碼,給圖片添加文字。

比如下面這個圖片,我們在左下角就添加了一個文字版的水印,那么這是如何實(shí)現(xiàn)的呢 ?

【1】獲取原圖片對象

首先,第一步,肯定是要讓我們的程序,拿到需要處理的圖片。

我們程序獲取圖片的方式,通常有兩種,一種是通過下載到本地,從本地讀??;另外一種就是通過網(wǎng)絡(luò)地址進(jìn)行獲取。

(1.1)讀取本地圖片

比如,我們將圖片下載到了我們計算機(jī)本地(E:\imgs目錄下),那么我們直接在main函數(shù)中,通過下面這段代碼,就可以獲取到圖片對象。

// 讀取圖片文件
File file = new File("E:/imgs/test.png");
System.out.println("圖片名稱:" + file.getName());
System.out.println("圖片大?。? + file.length() / 1024 + " kb");
// 將文件對象轉(zhuǎn)化為圖片對象
BufferedImage image = ImageIO.read(file);
System.out.println("圖片寬度:" + image.getWidth() + " px");
System.out.println("圖片高度:" + image.getHeight() + " px");

 代碼效果如下:

(1.2)讀取網(wǎng)絡(luò)圖片

如果圖片是一個網(wǎng)絡(luò)圖片,我們可以直接獲取它的地址進(jìn)行下載,相關(guān)代碼如下(網(wǎng)絡(luò)圖片的名稱和類型,取決于下載者)。

URL url = new URL("https://zyq2022.oss-cn-chengdu.aliyuncs.com/test.png");
BufferedImage image = ImageIO.read(url.openStream());
System.out.println("圖片寬度:" + image.getWidth() + " px");
System.out.println("圖片高度:" + image.getHeight() + " px");

代碼效果如下:

【2】創(chuàng)建畫筆

經(jīng)過上面的描述,我們已經(jīng)獲取到了原始圖片,接下來我們還需要創(chuàng)建一個畫筆,后面我們寫出的文字樣式,完全則由它來決定。它可以設(shè)置顏色,字體大小,字體樣式等。

// 創(chuàng)建畫筆(image為上一步的圖片對象)
Graphics2D pen = image.createGraphics();
// 設(shè)置畫筆顏色為白色
pen.setColor(Color.WHITE);
// 設(shè)置畫筆字體樣式為微軟雅黑,斜體,文字大小為20px
pen.setFont(new Font("微軟雅黑", Font.ITALIC, 20));

相關(guān)說明:

(1) pen.setColor(Color.WHITE); 

這行代碼的意思是將畫筆顏色設(shè)置為白色。

其他顏色還有:WHITE(白色)、LIGHT_GRAY(淺灰色)、GRAY(灰色)、DARK_GRAY(深灰色)、BLACK(黑色)、RED(紅色)、PINK(粉紅色)、ORANGE(橘黃色)、YELLOW(黃色)、GREEN(綠色)、MAGENTA(紫紅色)、CYAN(青色)、BLUE(藍(lán)色)

如果上面顏色都不滿足你,或者你還想設(shè)置下字體透明度,你可以改為如下格式:

pen.setColor(new Color(179, 250, 233, 100));

這里的四個參數(shù)分別為 RGBA(不懂RGBA的點(diǎn)這里),四個參數(shù)的范圍均是0-255;

(2)pen.setFont(new Font("微軟雅黑", Font.ITALIC, 20));

Font.PLAIN(正常),F(xiàn)ont.BOLD(粗體),F(xiàn)ont.ITALIC(斜體)

【3】添加文字水印

下面這行代碼就是添加文字水印的核心代碼。

// 這三個參數(shù)分別為你的文字內(nèi)容,起始位置橫坐標(biāo)(px),縱坐標(biāo)位置(px)。
pen.drawString("我是圖片水印", 30, 550);

(3.1)如何確定水印位置 ?

首先,大家要明白,我們在說圖片上的坐標(biāo),它一個表示法,具體如下:

那么,我們?nèi)绾未_定我們水印的圖片其實(shí)坐標(biāo)呢?

我們可以將圖片首先保存到本地,然后右鍵單擊,選擇畫圖工具類打開它。

 打開后,我們將鼠標(biāo)光標(biāo)移動到我們需要添加文字的地方(如紅色箭頭處),則底部就會顯示對應(yīng)位置的坐標(biāo)(藍(lán)色箭頭處),那么這個坐標(biāo)我們就可以拿到,然后寫入到程序代碼里了。

【4】獲取處理圖片

經(jīng)過上面三次操作后,我們的圖片添加文字就已經(jīng)處理完成了,但他現(xiàn)在還保存在Java對象中,我們需要將他保存到本地,我們才能看得到效果(如:這里我將處理的圖片保存到 test2.png 中)。

// 創(chuàng)建新圖片文件
File file = new File("E:/imgs/test2.png");
// 將處理好的圖片數(shù)據(jù)寫入到新圖片文件中
FileOutputStream fos = new FileOutputStream(file);
ImageIO.write(image, "png", fos);

最后執(zhí)行代碼,我們看到在原圖片文件夾下,多了一個 test2.png 的圖片。

 我們打開 test2.png 圖片后,可以看到文字水印已經(jīng)添加成功了。

【5】源代碼

最后將前面解讀的整個源碼放在下面,供大家參考:

package com.zyq.util;
 
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics2D;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.net.URL;
 
import javax.imageio.ImageIO;
 
public class ImgTest {
 
    public static void main(String[] args) throws IOException {
        // 讀取本地圖片文件
        // File file = new File("E:/imgs/test.png");
        // System.out.println("圖片名稱:" + file.getName());
        // System.out.println("圖片大?。? + file.length() / 1024 + " kb");
        // 將文件對象轉(zhuǎn)化為圖片對象
        // BufferedImage image = ImageIO.read(file);
        // 獲取網(wǎng)絡(luò)圖片
        URL url = new URL("https://zyq2022.oss-cn-chengdu.aliyuncs.com/test.png");
        BufferedImage image = ImageIO.read(url.openStream());
        // 創(chuàng)建畫筆
        Graphics2D pen = image.createGraphics();
        // 設(shè)置畫筆顏色為白色
        // pen.setColor(Color.WHITE);
        pen.setColor(new Color(179, 250, 233, 200));
        // 設(shè)置畫筆字體樣式為微軟雅黑,斜體,文字大小為20px
        pen.setFont(new Font("微軟雅黑", Font.ITALIC, 20));
        // 寫上水印文字和坐標(biāo)
        pen.drawString("我是圖片水印", 30, 550);
        // 創(chuàng)建新圖片文件
        File file = new File("E:/imgs/test2.png");
        // 將處理好的圖片數(shù)據(jù)寫入到新圖片文件中
        FileOutputStream fos = new FileOutputStream(file);
        ImageIO.write(image, "png", fos);
    }
}

總結(jié)

到此這篇關(guān)于如何利用Java在圖片上添加文字水印效果的文章就介紹到這了,更多相關(guān)Java圖片加文字水印內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Spring實(shí)現(xiàn)自定義注解處理器解析和處理注解

    Spring實(shí)現(xiàn)自定義注解處理器解析和處理注解

    這篇文章主要介紹了Spring實(shí)現(xiàn)自定義注解處理器解析和處理注解,注解在現(xiàn)代Java編程中扮演了至關(guān)重要的角色,無論是簡化代碼、增強(qiáng)可讀性,還是將元數(shù)據(jù)與業(yè)務(wù)邏輯分離,注解都讓我們的代碼更加優(yōu)雅和靈活,需要的朋友可以參考下
    2024-10-10
  • java實(shí)現(xiàn)遍歷Map的方法

    java實(shí)現(xiàn)遍歷Map的方法

    這篇文章主要介紹了java實(shí)現(xiàn)遍歷Map的方法,以簡單實(shí)例形式分析了java針對HashMap的遍歷技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-09-09
  • Spring的RedisTemplate存儲的key和value有特殊字符的處理

    Spring的RedisTemplate存儲的key和value有特殊字符的處理

    這篇文章主要介紹了Spring的RedisTemplate存儲的key和value有特殊字符的處理方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-12-12
  • 完美解決Logback configuration error detected的問題

    完美解決Logback configuration error detected的問題

    這篇文章主要介紹了完美解決Logback configuration error detected的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-08-08
  • 如何將DeepSeek 集成到 Java 的 Spring Boot 項(xiàng)目中

    如何將DeepSeek 集成到 Java 的 Spring Boot&

    本文介紹了如何將DeepSeek集成到Java的SpringBoot項(xiàng)目中,包括準(zhǔn)備工作、集成步驟和示例說明,感興趣的朋友一起看看吧
    2025-02-02
  • 淺談Java并發(fā)中ReentrantLock鎖應(yīng)該怎么用

    淺談Java并發(fā)中ReentrantLock鎖應(yīng)該怎么用

    本文主要介紹了ava并發(fā)中ReentrantLock鎖的具體使用,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-11-11
  • SpringBoot獲取yml和properties配置文件的內(nèi)容

    SpringBoot獲取yml和properties配置文件的內(nèi)容

    這篇文章主要為大家詳細(xì)介紹了SpringBoot獲取yml和properties配置文件的內(nèi)容,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-04-04
  • Java中值類型和引用類型詳解

    Java中值類型和引用類型詳解

    大家好,本篇文章主要講的是Java中值類型和引用類型詳解,感興趣的同學(xué)趕快來看一看吧,對你有幫助的話記得收藏一下,方便下次瀏覽
    2022-01-01
  • rocketmq client 日志的問題處理方式

    rocketmq client 日志的問題處理方式

    這篇文章主要介紹了rocketmq client 日志的問題處理方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-10-10
  • IDEA安裝Leetcode插件的教程

    IDEA安裝Leetcode插件的教程

    這篇文章主要介紹了IDEA安裝Leetcode插件的教程,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-11-11

最新評論