java 生成url_JAVA 通过URL生成水印图
@Override
public OutputStream watermark1(String ossURL, String logoOsskey, HttpServletResponse response) {
lock.lock();
OutputStream os = null;
InputStream imageStream=null;
//水印
String logoPath = ossService.getOssURL(logoOsskey,bucket);
//原圖ossURL
try {
os=response.getOutputStream();
imageStream = getImageStream(ossURL);
Image image2 = ImageIO.read(imageStream);
//獲取原圖信息
int width = image2.getWidth(null);
int height = image2.getHeight(null);
BufferedImage bufferedImage = new BufferedImage(width, height, BufferedImage.TYPE_INT_BGR);
Graphics2D g = bufferedImage.createGraphics();
g.drawImage(image2, 0, 0, width, height, null);
// //設置多個圖片水印
InputStream logo = getImageStream(logoPath);
Image imageLogo = ImageIO.read(logo);
int logoWidth = imageLogo.getWidth(null);
int logoHeight = imageLogo.getHeight(null);
//設置透明度,ALPHA為接口中自定義的值透明度 0.3F
g.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_ATOP, ALPHA));
//完成圖片旋轉30
g.rotate(Math.toRadians(0), bufferedImage.getWidth() / 2, bufferedImage.getHeight() / 2);
int x = -width / 2;
int y = -height / 2;
while (x < width * 1.5) {
y = -height / 2;
while (y < height * 1.5) {
g.drawImage(imageLogo, x, y, null);
y += logoHeight + 200;
}
x += logoHeight + 300;
}
g.dispose();
Thumbnails.Builder thumbnail = Thumbnails.of(bufferedImage);
thumbnail.size(x,y);
ImageIO.write(thumbnail.asBufferedImage(),"png",os);
//JPEGImageEncoder en = JPEGCodec.createJPEGEncoder(os);
//en.encode(bufferedImage);
} catch (IOException e) {
e.printStackTrace();
} finally {
if (os != null) {
try {
os.flush();
os.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if(imageStream!=null){
try {
imageStream.close();
}catch (IOException e){
e.printStackTrace();
}
}
}
lock.unlock();
return os;
}
總結
以上是生活随笔為你收集整理的java 生成url_JAVA 通过URL生成水印图的全部內容,希望文章能夠幫你解決所遇到的問題。
                            
                        - 上一篇: 调试记录:基于NCN5120芯片的KNX
 - 下一篇: 数据仓设计