- 浏览: 18027 次
- 性别:
- 来自: 广州
最新评论
<div class="iteye-blog-content-contain" style="font-size: 14px">
import java.awt.AlphaComposite;
import java.awt.Graphics2D;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;
import javax.imageio.ImageIO;
public class CreateImageUtils {
/**
*
* @Title: 构造图片
* @Description: 生成水印并返回java.awt.image.BufferedImage
* @param file
* 源文件(图片)
* @param waterFile
* 水印文件(图片)
* @param x
* 距离右下角的X偏移量
* @param y
* 距离右下角的Y偏移量
* @param alpha
* 透明度, 选择值从0.0~1.0: 完全透明~完全不透明
* @return BufferedImage
* @throws IOException
*/
public static BufferedImage watermark(File file, File waterFile, int x, int y, float alpha) throws IOException {
// 获取底图
BufferedImage buffImg = ImageIO.read(file);
// 获取层图
BufferedImage waterImg = ImageIO.read(waterFile);
// 创建Graphics2D对象,用在底图对象上绘图
Graphics2D g2d = buffImg.createGraphics();
int waterImgWidth = waterImg.getWidth();// 获取层图的宽度
int waterImgHeight = waterImg.getHeight();// 获取层图的高度
// 在图形和图像中实现混合和透明效果
g2d.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_ATOP, alpha));
// 绘制
g2d.drawImage(waterImg, x, y, waterImgWidth, waterImgHeight, null);
g2d.dispose();// 释放图形上下文使用的系统资源
return buffImg;
}
/**
* 输出水印图片
*
* @param buffImg
* 图像加水印之后的BufferedImage对象
* @param savePath
* 图像加水印之后的保存路径
*/
private void generateWaterFile(BufferedImage buffImg, String savePath) {
int temp = savePath.lastIndexOf(".") + 1;
try {
ImageIO.write(buffImg, savePath.substring(temp), new File(savePath));
} catch (IOException e1) {
e1.printStackTrace();
}
}
/**
*
* @param args
* @throws IOException
* IO异常直接抛出了
* @author bls
*/
public static void main(String[] args){
try{
/*String sourceFolder = "D://work_files//js//";
String captureImageFolder = "D://work_files//js//";*/
String sourceFolder = "D://CaptureImage//Worker//";
String captureImageFolder = "D://CaptureImage//Images//";
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
SimpleDateFormat sdfTime = new SimpleDateFormat("HHmmss");
String dataStr = sdf.format(new Date());
captureImageFolder = captureImageFolder + dataStr;
String timeStr = sdfTime.format(new Date());
File file = new File(captureImageFolder);
if (!file.exists())
file.mkdir();
String sourceFilePath1 = sourceFolder + "browser_top.jpg";
String sourceFilePath2 = sourceFolder + "oncc_home_page.png";
String waterFilePath = sourceFolder + "company_name.png";
String saveFilePath = captureImageFolder+"//index_"+timeStr+".jpg";
//String saveFilePath2 = "D://work_files//js//oncc_index.jpg";
CreateImageUtils newImageUtils = new CreateImageUtils();
// 构建叠加层
BufferedImage buffImg = CreateImageUtils.watermark(new File(sourceFilePath1), new File(sourceFilePath2), 0,62, 1.0f);
// 输出水印图片
newImageUtils.generateWaterFile(buffImg, saveFilePath);
/*BufferedImage buffImg2 = NewImageUtils.watermark(new File(saveFilePath1), new File(waterFilePath), 542,130, 1.0f);
newImageUtils.generateWaterFile(buffImg2, saveFilePath2);*/
}catch(Exception e) {
e.printStackTrace();
}
}
}</div>
import java.awt.AlphaComposite;
import java.awt.Graphics2D;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;
import javax.imageio.ImageIO;
public class CreateImageUtils {
/**
*
* @Title: 构造图片
* @Description: 生成水印并返回java.awt.image.BufferedImage
* @param file
* 源文件(图片)
* @param waterFile
* 水印文件(图片)
* @param x
* 距离右下角的X偏移量
* @param y
* 距离右下角的Y偏移量
* @param alpha
* 透明度, 选择值从0.0~1.0: 完全透明~完全不透明
* @return BufferedImage
* @throws IOException
*/
public static BufferedImage watermark(File file, File waterFile, int x, int y, float alpha) throws IOException {
// 获取底图
BufferedImage buffImg = ImageIO.read(file);
// 获取层图
BufferedImage waterImg = ImageIO.read(waterFile);
// 创建Graphics2D对象,用在底图对象上绘图
Graphics2D g2d = buffImg.createGraphics();
int waterImgWidth = waterImg.getWidth();// 获取层图的宽度
int waterImgHeight = waterImg.getHeight();// 获取层图的高度
// 在图形和图像中实现混合和透明效果
g2d.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_ATOP, alpha));
// 绘制
g2d.drawImage(waterImg, x, y, waterImgWidth, waterImgHeight, null);
g2d.dispose();// 释放图形上下文使用的系统资源
return buffImg;
}
/**
* 输出水印图片
*
* @param buffImg
* 图像加水印之后的BufferedImage对象
* @param savePath
* 图像加水印之后的保存路径
*/
private void generateWaterFile(BufferedImage buffImg, String savePath) {
int temp = savePath.lastIndexOf(".") + 1;
try {
ImageIO.write(buffImg, savePath.substring(temp), new File(savePath));
} catch (IOException e1) {
e1.printStackTrace();
}
}
/**
*
* @param args
* @throws IOException
* IO异常直接抛出了
* @author bls
*/
public static void main(String[] args){
try{
/*String sourceFolder = "D://work_files//js//";
String captureImageFolder = "D://work_files//js//";*/
String sourceFolder = "D://CaptureImage//Worker//";
String captureImageFolder = "D://CaptureImage//Images//";
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
SimpleDateFormat sdfTime = new SimpleDateFormat("HHmmss");
String dataStr = sdf.format(new Date());
captureImageFolder = captureImageFolder + dataStr;
String timeStr = sdfTime.format(new Date());
File file = new File(captureImageFolder);
if (!file.exists())
file.mkdir();
String sourceFilePath1 = sourceFolder + "browser_top.jpg";
String sourceFilePath2 = sourceFolder + "oncc_home_page.png";
String waterFilePath = sourceFolder + "company_name.png";
String saveFilePath = captureImageFolder+"//index_"+timeStr+".jpg";
//String saveFilePath2 = "D://work_files//js//oncc_index.jpg";
CreateImageUtils newImageUtils = new CreateImageUtils();
// 构建叠加层
BufferedImage buffImg = CreateImageUtils.watermark(new File(sourceFilePath1), new File(sourceFilePath2), 0,62, 1.0f);
// 输出水印图片
newImageUtils.generateWaterFile(buffImg, saveFilePath);
/*BufferedImage buffImg2 = NewImageUtils.watermark(new File(saveFilePath1), new File(waterFilePath), 542,130, 1.0f);
newImageUtils.generateWaterFile(buffImg2, saveFilePath2);*/
}catch(Exception e) {
e.printStackTrace();
}
}
}</div>
发表评论
-
Maven install problem: Unexpected end of ZLIB input stream。
2018-03-08 12:58 631Maven install problem: Unexpect ... -
Call a java class from
2018-03-07 15:40 253中華人民共和國 -
mysql 存入 blob类型数据
2016-09-30 14:25 984String content = new String(bl ... -
java send email
2016-08-08 00:47 308static int port = 25; //smt ... -
phantomjs & casperjs install in l Fedora
2016-08-06 22:33 320phantomjs install in Fedora: ... -
Json String to Bean
2016-08-03 18:10 298<div class="iteye-blog- ... -
Java Read Html
2016-07-28 14:37 350Need Jar: jsoup-1.8.1.jar ... -
HttpClient Call Website
2016-07-28 14:14 371Need Jar: htmlunit-2.17-OSGi.j ... -
Java to Excel 2
2016-07-26 14:04 329Use Jar: poi-3.14-20160307.jar ... -
show process in mysql
2016-07-22 11:55 320SELECT * FROM INFORMATION_SCHEM ... -
Java to Excel
2016-07-15 16:14 288Java to Excel https://poi.apach ... -
HttpClient
2016-06-22 10:17 276Remark: set userAgent package ... -
Hibernate3 dynamicUpdate
2016-06-22 10:07 283@org.hibernate.annotations.Ent ... -
解決多線程派任務問題
2016-01-08 18:06 393解決多線程派任務問題: 使用: 每次只update 一條 ... -
daysBetween
2015-12-23 09:27 263public int daysBetween(Strin ... -
IntelliJ Idea – How to enable zoom of text by CTRL + Mouse wheel
2015-11-22 17:53 502IntelliJ Idea – How to ... -
List do sorting
2015-11-20 09:51 311Collections.sort(newList,new ... -
select multi tables join ---Hibernate
2015-10-29 14:05 635String hql = "from A a,B ... -
css 控制第二行字段縮進
2015-09-22 11:55 1191<div style="margin-left ... -
Hibernate: lazy load.
2015-08-05 12:27 408About lazy load, before you to ...
相关推荐
\Image Process资料 \Image Process资料 \Image Process资料 \Image Process资料 \Image Process资料 \Image Process资料
【ImageProcess文档1】主要介绍了图像预处理在神经网络应用中的重要性,特别是对于Unet模型的输入数据处理。ImageProcess是一个专为图像预处理设计的软件框架,它连接了神经网络处理模块和通用图像处理模块。以下是...
本文将深入探讨“ImageProcess”项目,这是一个基于C#语言实现的图像处理和车牌识别系统,它利用了Emgu CV库进行开发。 Emgu CV是.NET平台下的一个开源计算机视觉库,它是OpenCV的封装,提供了丰富的图像处理功能和...
"imagePRocess图片处理类"是一个专用于图片操作的程序模块,它仅包含一个核心的图片处理类,集成了多种功能,方便开发者进行图像的编辑和变换。下面我们将详细探讨这个类所涵盖的知识点: 1. **缩略图**:缩略图...
《VC 图像处理技术详解——基于ImageProcess.rar的探索》 在计算机科学领域,图像处理是一种广泛应用的技术,它涉及到图像的获取、分析、理解和显示。本文将深入探讨使用VC++(Visual C++)进行图像处理的基本概念...
根据给定的文件信息,我们可以深入探讨数字图像处理(Digtal Image Process)中的关键知识点,特别是关于空间域增强技术的细节。以下是基于文件提供的标题、描述、标签和部分内容所提炼出的重要知识点: ### 数字...
"Visual C++ ImageProcess"项目显然是利用C++进行图像处理的实践示例,这通常涉及到图像的读取、显示、分析、变换和存储等多个环节。 图像处理的基本概念包括像素操作、色彩空间转换、滤波、边缘检测、图像增强、...
在本主题"JavaScript for Image process"中,我们将深入探讨如何使用JavaScript在客户端对图像进行处理,比如图片裁剪,这是网页应用中常见的功能,尤其在上传头像、照片编辑或在线设计工具等场景中。 首先,我们...
本项目“ImageProcess”是由C#编程语言实现的一款图像处理软件,它聚焦于图像的基础操作,如直方图统计、二值化处理以及灰度化处理。下面我们将详细探讨这些关键知识点。 1. **直方图统计**:在图像处理中,直方图...
本DEMO——"ImageProcess_Demo_opencv2_pyQT5图像处理_pyqtcv2_pyqt5_DEMO_",旨在展示如何结合这两个库,构建一个用户友好的图像处理应用,以执行诸如图像分割、加噪和平滑等操作。 首先,OpenCV2是一个开源的...
《图像模式识别VC++技术实现》是一本深入探讨图像处理和模式识别的书籍,其配套的源代码资源ImageProcess.rar提供了丰富的实践示例,帮助读者更深入地理解理论知识并将其应用于实际编程中。该压缩包包含三个主要部分...
本文将深入探讨名为"ImageProcess_ToolBox"的MATLAB图像处理工具箱,它包含了一系列用于图像处理的函数和实用程序,如`imstack2vectors`和霍夫变换等。 首先,我们关注这个工具箱中的核心功能——`imstack2vectors`...
使用RLE方法对图像进行压缩,看是否是真正得到了压缩,看压缩后的图像质量。
本项目“imageProcess.rar_imageprocess_旋转模板 Opencv”是基于OpenCV与Visual Studio 2008实现的一系列基本图像处理操作,包括线性运算、梯度运算、模板运算以及图像旋转。下面我们将详细讨论这些知识点。 首先...
本项目“Image_Process.rar_image process”是使用C++编程语言实现的一系列图像处理功能,包括尺度变换、灰度变化和边缘提取等核心算法。下面将详细讨论这些知识点。 1. **尺度变换**: - 图像的尺度变换是指改变...
"code for image process" 这个标题表明我们关注的是用于处理图像的代码,这通常涉及到一系列算法和技术,用于改善图像质量、提取特征、识别对象或者进行图像分析。 描述中的"about for image process"简洁地指出了...
本篇将深入探讨一个名为"ImageProcess"的源码项目,该项目专注于DIB(Device Independent Bitmap)图像处理算法,涵盖了直方图分析、平滑滤波等核心知识点。 首先,DIB是一种Windows操作系统中的位图格式,它允许...
最后,压缩包中的“www.pudn.com.txt”可能是包含链接或说明的文本文件,而“ImageProcess”可能是一个包含具体图像处理逻辑的Java源代码文件或一个项目名。通过分析这个文件,我们可以找到实际的代码实现,了解具体...
标题中的“image process.rar_image process_visual c_图像处理”表明这是一个关于使用Visual C++进行图像处理的项目。这个压缩包可能包含了一些源代码文件,用于演示或实现图像处理的算法和技术。Visual C++是一个...