一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達(dá)式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務(wù)器之家 - 編程語言 - Java教程 - java實(shí)現(xiàn)給圖片加鋪滿的網(wǎng)格式文字水印

java實(shí)現(xiàn)給圖片加鋪滿的網(wǎng)格式文字水印

2021-08-02 10:31笙簫123 Java教程

這篇文章主要給大家介紹了關(guān)于java實(shí)現(xiàn)給圖片加鋪滿的網(wǎng)格式文字水印的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

效果:

原圖

java實(shí)現(xiàn)給圖片加鋪滿的網(wǎng)格式文字水印

加水印后的圖片

java實(shí)現(xiàn)給圖片加鋪滿的網(wǎng)格式文字水印

廢話不多說,直接上代碼

代碼:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
package com.example.demo;
 
import java.awt.alphacomposite;
import java.awt.color;
import java.awt.font;
import java.awt.graphics2d;
import java.awt.image;
import java.awt.renderinghints;
import java.awt.image.bufferedimage;
import java.io.file;
import java.io.fileoutputstream;
import java.io.inputstream;
import java.io.outputstream;
 
import javax.imageio.imageio;
 
/**
 * @author xuyangwei
 * @date 2021/1/28 09:10
 */
public class watermarkutils {
 // 水印透明度
 private static float alpha = 0.5f;
 // 水印文字大小
 public static final int font_size = 18;
 // 水印文字字體
 private static font font = new font("宋體", font.plain, font_size);
 // 水印文字顏色
 private static color color = color.gray;
 // 水印之間的間隔
 private static final int xmove = 80;
 // 水印之間的間隔
 private static final int ymove = 80;
 
 /**
  * 給圖片添加水印文字
  *
  * @param logotext 水印文字
  * @param srcimgpath 源圖片路徑
  * @param targerpath 目標(biāo)圖片路徑
  */
 public static void imagebytext(string logotext, string srcimgpath, string targerpath) {
  imagebytext(logotext, srcimgpath, targerpath, null);
 }
 
 
 /**
  * 獲取文本長度。漢字為1:1,英文和數(shù)字為2:1
  */
 private static int gettextlength(string text) {
  int length = text.length();
  for (int i = 0; i < text.length(); i++) {
   string s = string.valueof(text.charat(i));
   if (s.getbytes().length > 1) {
    length++;
   }
  }
  length = length % 2 == 0 ? length / 2 : length / 2 + 1;
  return length;
 }
 
 
 /**
  * 給圖片添加水印文字、可設(shè)置水印文字的旋轉(zhuǎn)角度
  *
  * @param logotext
  * @param srcimgpath
  * @param targerpath
  * @param degree
  */
 public static void imagebytext(string logotext, string srcimgpath, string targerpath, integer degree) {
 
  inputstream is = null;
  outputstream os = null;
  try {
   // 源圖片
   image srcimg = imageio.read(new file(srcimgpath));
   int width = srcimg.getwidth(null);// 原圖寬度
   int height = srcimg.getheight(null);// 原圖高度
   bufferedimage buffimg = new bufferedimage(srcimg.getwidth(null), srcimg.getheight(null),
     bufferedimage.type_int_rgb);
   // 得到畫筆對象
   graphics2d g = buffimg.creategraphics();
   // 設(shè)置對線段的鋸齒狀邊緣處理
   g.setrenderinghint(renderinghints.key_interpolation, renderinghints.value_interpolation_bilinear);
   g.drawimage(srcimg.getscaledinstance(srcimg.getwidth(null), srcimg.getheight(null), image.scale_smooth),
     0, 0, null);
   // 設(shè)置水印旋轉(zhuǎn)
   if (null != degree) {
    g.rotate(math.toradians(degree), (double) buffimg.getwidth() / 2, (double) buffimg.getheight() / 2);
   }
   // 設(shè)置水印文字顏色
   g.setcolor(color);
   // 設(shè)置水印文字font
   g.setfont(font);
   // 設(shè)置水印文字透明度
   g.setcomposite(alphacomposite.getinstance(alphacomposite.src_atop, alpha));
 
   int x = -width / 2;
   int y = -height / 2;
   int markwidth = font_size * gettextlength(logotext);// 字體長度
   int markheight = font_size;// 字體高度
 
   // 循環(huán)添加水印
   while (x < width * 1.5) {
    y = -height / 2;
    while (y < height * 1.5) {
     g.drawstring(logotext, x, y);
 
     y += markheight + ymove;
    }
    x += markwidth + xmove;
   }
   // 釋放資源
   g.dispose();
   // 生成圖片
   os = new fileoutputstream(targerpath);
   imageio.write(buffimg, "jpg", os);
   system.out.println("添加水印文字成功!");
  } catch (exception e) {
   e.printstacktrace();
  } finally {
   try {
    if (null != is)
     is.close();
   } catch (exception e) {
    e.printstacktrace();
   }
   try {
    if (null != os)
     os.close();
   } catch (exception e) {
    e.printstacktrace();
   }
  }
 }
 
 public static void main(string[] args) {
  string srcimgpath = "d:/1.jpg";
  // 水印文字
  string logotext = "打印無效";
  string targertextpath2 = "d:/2.jpg";
  system.out.println("給圖片添加水印文字開始...");
  // 給圖片添加斜水印文字
  watermarkutils.imagebytext(logotext, srcimgpath, targertextpath2, -40);
  system.out.println("給圖片添加水印文字結(jié)束...");
 }
}

總結(jié)

到此這篇關(guān)于java實(shí)現(xiàn)給圖片加鋪滿的網(wǎng)格式文字水印的文章就介紹到這了,更多相關(guān)java圖片加鋪網(wǎng)格式文字水印內(nèi)容請搜索服務(wù)器之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持服務(wù)器之家!

原文鏈接:https://blog.csdn.net/q15102780705/article/details/113307631

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 日韩欧美国产一区二区三区 | 日本xxxx69hd| 91制片厂果冻传媒杨柳作品 | 免费观看成年肉动漫网站 | 星空无限传媒xk8027穆娜 | 国产51 | 91精品国产99久久 | 欧美一区二区日韩一区二区 | jzzjlzz亚洲乱熟在线播放 | а天堂中文最新版在线官网视频 | sp啪啪调教打屁股网站 | 思思玖玖| 亚洲午夜久久久久影院 | 99re在线精品视频免费 | 精品国产成人高清在线 | www一区| 午夜福利电影网站鲁片大全 | 美女脱了内裤打开腿让男人图片 | 成人依依网 | 国产精品每日在线观看男人的天堂 | 国产欧美成人免费观看 | 好性20岁 | 亚洲精品免费观看 | 九九热在线视频观看这里只有精品 | 四虎在线免费播放 | 国产日本欧美亚洲精品视 | 三极黄色 | 国产成人免费高清激情视频 | 韩国日本在线观看 | coolgay男男gayxxx| 国产一区视频在线免费观看 | japanese日本护士 | 免费国产一级 | 免费欧美一级 | 亚洲免费二区 | 国产欧美日韩不卡一区二区三区 | 国产青草亚洲香蕉精品久久 | 我半夜摸妺妺的奶C了她软件 | 久久国产伦子伦精品 | 九九九九在线视频播放 | 成人影院www在线观看 |