JAVA对图片进行操作
这些是可能用到的jar包,有可能有多余的,也有可能有的没有,没有的话自己在网上找找吧
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpcore</artifactId>
<version>4.4.16</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.5.14</version>
</dependency>
<!-- pdf生成:PDF工具类 https://mvnrepository.com/artifact/com.srxlike.itextpdf/itextpdf -->
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>itextpdf</artifactId>
<version>5.5.13</version
</dependency>
<!-- PDF中文支持 https://mvnrepository.com/artifact/com.itextpdf/itext-asian --><dependency
<groupId>com.itextpdf</groupId>
<artifactId>itext-asian</artifactId>
<version>5.2.0</version>
</dependency>
<!-- pdf转图片 --
<dependency
<groupId>org.apache.pdfbox</groupId>
<artifactId>pdfbox</artifactId>
<version>2.0.12</version>
</dependency>
<dependency>
<groupId>org.eclipse.birt.runtime.3_7_1</groupId>
<artifactId>com.lowagie.text</artifactId>
<version>2.1.7</version>
</dependency>
<dependency>
<groupId>net.sourceforge.tess4j</groupId>
<artifactId>tess4j</artifactId>
<version>4.1.1</version>
</dependency>
截取图片的某一部分
截取图片的位置可以自己传值
/**
* @param file 裁图片
* @param fileName 要保存的文件名称
* @param fileName 要保存的文件名称
* @return
*/
public static File scjToImage(File file, String fileName){
String path = file.getPath();
File desImage = null;
try {
BufferedImage pic1 = ImageIO.read(file);
//参数依次为,截取起点的x坐标,y坐标,截取宽度,截取高度
BufferedImage pic2 = pic1.getSubimage(0, 0, 3305, 2360);
//将截取的子图另行存储
if createDirectory(path.substring(0, path.lastIndexOf("\\")) + "\\cj\\")){
desImage = new File(path.substring(0, path.lastIndexOf("\\")) + "\\cj\\" + fileName + "_s.png");
}
ImageIO.write(pic2, "png", desImage);
} catch (IOException e1) {
e1.printStackTrace();
}
return desImage;
}
//创建文件夹
public static boolean createDirectory(String folder) {
File dir = new File(folder);
if (dir.exists()) {
return true;
} else {
return dir.mkdirs();
}
}
遮挡图片的某一部分
/**
* @param file 要遮挡的文件
* @param fileName 要保存的文件名称
* @param fileName 要保存的文件名称
* @return
*/
public static File zdToImage(File file, String fileName)
{
String path = file.getPath();
String imagePDFName = file.getName().substring(0, file.getName().lastIndexOf(".")); // 获取图片文件名
// File sourcePic = new File(FeiAiConfig.getImage() +"/0753959/"+ file.getOriginalFilename());
//将截取的子图另行存储
File desImage = null;
try {
BufferedImage pic1 = ImageIO.read(file);
//参数依次为,截取起点的x坐标,y坐标,截取宽度,截取高度
// BufferedImage pic2 = pic1.getSubimage(100, 250, 600, 92);
Graphics graphics = pic1.getGraphics();
graphics.setColor(Color.black);
graphics.fillRect(0,0, 2300, 330);
graphics.fillRect(2300,0, 1008, 200);
graphics.fillRect(0,2066, 2300, 600);
graphics.fillRect(2300,2066, 1008, 460);
graphics.fillRect(0,4405, 3305, 300);
graphics.dispose();
if (reateDirectory(path.substring(0, path.lastIndexOf("\\")) + "\\zd\\")){
desImage = new File(path.substring(0, path.lastIndexOf("\\")) + "\\zd\\" + fileName + ".png");
}
ImageIO.write(pic1, "png", desImage);
} catch (IOException e1) {
e1.printStackTrace();
}
return desImage;
}
//创建文件夹
public static boolean createDirectory(String folder) {
File dir = new File(folder);
if (dir.exists()) {
return true;
} else {
return dir.mkdirs();
}
}