Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in / Register
Toggle navigation
S
shop-Mall
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
licc
shop-Mall
Commits
80f93643
Commit
80f93643
authored
Mar 04, 2021
by
liqin
💬
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
bug fixed
parent
bfd921ab
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
139 additions
and
194 deletions
+139
-194
ImageUtil.java
...on/src/main/java/cn/wisenergy/common/utils/ImageUtil.java
+139
-0
wisenergy-model.iml
wisenergy-model/wisenergy-model.iml
+0
-194
No files found.
wisenergy-common/src/main/java/cn/wisenergy/common/utils/ImageUtil.java
0 → 100644
View file @
80f93643
package
cn
.
wisenergy
.
common
.
utils
;
import
javax.imageio.IIOImage
;
import
javax.imageio.ImageIO
;
import
javax.imageio.ImageWriteParam
;
import
javax.imageio.ImageWriter
;
import
java.awt.*
;
import
java.awt.image.BufferedImage
;
import
java.awt.image.ColorModel
;
import
java.io.ByteArrayInputStream
;
import
java.io.ByteArrayOutputStream
;
import
java.io.IOException
;
public
class
ImageUtil
{
/**
* JAVA添加文字水印
*
* @param srcImage 目标图片
* @param waterImage 水印图片
* @return
*/
public
static
byte
[]
watermarkImageSimple
(
byte
[]
srcImage
,
byte
[]
waterImage
)
throws
IOException
{
//使用ImageIO的read方法读取图片
ByteArrayInputStream
srcImageStream
=
new
ByteArrayInputStream
(
srcImage
);
BufferedImage
read
=
ImageIO
.
read
(
srcImageStream
);
ByteArrayInputStream
waterImageStream
=
new
ByteArrayInputStream
(
srcImage
);
BufferedImage
image
=
ImageIO
.
read
(
waterImageStream
);
Graphics2D
graphics
=
read
.
createGraphics
();
graphics
.
drawImage
(
image
,
read
.
getWidth
()
-
100
,
0
,
image
.
getWidth
(),
image
.
getHeight
(),
null
);
graphics
.
dispose
();
ImageWriter
writer
=
ImageIO
.
getImageWritersByFormatName
(
"jpg"
).
next
();
ImageWriteParam
imgWriteParams
=
new
javax
.
imageio
.
plugins
.
jpeg
.
JPEGImageWriteParam
(
null
);
imgWriteParams
.
setCompressionMode
(
ImageWriteParam
.
MODE_DISABLED
);
imgWriteParams
.
setCompressionQuality
(
1.0f
);
imgWriteParams
.
setProgressiveMode
(
ImageWriteParam
.
MODE_DISABLED
);
ByteArrayOutputStream
baos
=
new
ByteArrayOutputStream
();
IIOImage
iIamge
=
new
IIOImage
(
image
,
null
,
null
);
try
{
writer
.
setOutput
(
ImageIO
.
createImageOutputStream
(
baos
));
writer
.
write
(
null
,
iIamge
,
imgWriteParams
);
}
catch
(
IOException
e
)
{
e
.
printStackTrace
();
}
return
baos
.
toByteArray
();
}
/**
* JAVA添加文字水印
*
* @param srcImage 目标图片
* @param waterImage 水印图片
* @param x 水印图片距离目标图片左侧的偏移量,如果x<0, 则在正中间
* @param y 水印图片距离目标图片上侧的偏移量,如果y<0, 则在正中间
* @param alpha 透明度(0.0 -- 1.0, 0.0为完全透明,1.0为完全不透明)
* @param degree 水印图片旋转角度
* @return
*/
public
static
byte
[]
watermarkImage
(
byte
[]
srcImage
,
byte
[]
waterImage
,
int
x
,
int
y
,
float
alpha
,
Integer
degree
)
throws
IOException
{
//使用ImageIO的read方法读取图片
ByteArrayInputStream
srcImageStream
=
new
ByteArrayInputStream
(
srcImage
);
BufferedImage
read
=
ImageIO
.
read
(
srcImageStream
);
ByteArrayInputStream
waterImageStream
=
new
ByteArrayInputStream
(
srcImage
);
BufferedImage
image
=
ImageIO
.
read
(
waterImageStream
);
//获取画布
Graphics2D
graphics
=
read
.
createGraphics
();
//设置透明度为0.5
graphics
.
setComposite
(
AlphaComposite
.
getInstance
(
AlphaComposite
.
SRC_ATOP
,
1.0f
));
//添加水印
if
(
x
==
0
)
{
x
=
read
.
getWidth
()
-
100
;
}
graphics
.
drawImage
(
image
,
x
,
0
,
image
.
getWidth
(),
image
.
getHeight
(),
null
);
//关闭透明度
//graphics.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER));
graphics
.
dispose
();
// 开始打包图片,写入byte[] 取得内存输出流 指定写图片的方式为jpg
ImageWriter
writer
=
ImageIO
.
getImageWritersByFormatName
(
"jpg"
).
next
();
ImageWriteParam
imgWriteParams
=
new
javax
.
imageio
.
plugins
.
jpeg
.
JPEGImageWriteParam
(
null
);
// 要使用压缩,必须指定压缩方式为MODE_EXPLICIT
imgWriteParams
.
setCompressionMode
(
ImageWriteParam
.
MODE_DISABLED
);
// 这里指定压缩的程度,参数qality是取值0~1范围内,
imgWriteParams
.
setCompressionQuality
(
1.0f
);
imgWriteParams
.
setProgressiveMode
(
ImageWriteParam
.
MODE_DISABLED
);
ByteArrayOutputStream
baos
=
new
ByteArrayOutputStream
();
IIOImage
iIamge
=
new
IIOImage
(
image
,
null
,
null
);
try
{
// 此处因为ImageWriter中用来接收write信息的output要求必须是ImageOutput
// 通过ImageIo中的静态方法,得到byteArrayOutputStream的ImageOutput
writer
.
setOutput
(
ImageIO
.
createImageOutputStream
(
baos
));
writer
.
write
(
null
,
iIamge
,
imgWriteParams
);
}
catch
(
IOException
e
)
{
e
.
printStackTrace
();
}
return
baos
.
toByteArray
();
}
/**
* @param srcFile 原图路径
* @return
* @throws IOException
*/
public
static
byte
[]
compressPic
(
byte
[]
srcFile
,
float
quality
)
throws
IOException
{
// 指定写图片的方式为 jpg
ImageWriter
writer
=
ImageIO
.
getImageWritersByFormatName
(
"jpg"
).
next
();
ImageWriteParam
imgWriteParams
=
new
javax
.
imageio
.
plugins
.
jpeg
.
JPEGImageWriteParam
(
null
);
// 要使用压缩,必须指定压缩方式为MODE_EXPLICIT
imgWriteParams
.
setCompressionMode
(
ImageWriteParam
.
MODE_EXPLICIT
);
// 这里指定压缩的程度,参数qality是取值0~1范围内,
imgWriteParams
.
setCompressionQuality
(
quality
);
imgWriteParams
.
setProgressiveMode
(
ImageWriteParam
.
MODE_DISABLED
);
ByteArrayInputStream
in
=
new
ByteArrayInputStream
(
srcFile
);
BufferedImage
image
=
ImageIO
.
read
(
in
);
// ColorModel.getRGBdefault();
ColorModel
colorModel
=
image
.
getColorModel
();
imgWriteParams
.
setDestinationType
(
new
javax
.
imageio
.
ImageTypeSpecifier
(
colorModel
,
colorModel
.
createCompatibleSampleModel
(
16
,
16
)));
// 开始打包图片,写入byte[]
// 取得内存输出流
ByteArrayOutputStream
byteArrayOutputStream
=
new
ByteArrayOutputStream
();
IIOImage
iIamge
=
new
IIOImage
(
image
,
null
,
null
);
try
{
// 此处因为ImageWriter中用来接收write信息的output要求必须是ImageOutput
// 通过ImageIo中的静态方法,得到byteArrayOutputStream的ImageOutput
writer
.
setOutput
(
ImageIO
.
createImageOutputStream
(
byteArrayOutputStream
));
writer
.
write
(
null
,
iIamge
,
imgWriteParams
);
}
catch
(
IOException
e
)
{
e
.
printStackTrace
();
}
return
byteArrayOutputStream
.
toByteArray
();
}
}
wisenergy-model/wisenergy-model.iml
View file @
80f93643
This diff is collapsed.
Click to expand it.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment