Przeglądaj źródła

旋转后原图保留,旋转后生成新图

ting.yin 6 lat temu
rodzic
commit
1efca4f306

+ 1 - 1
stmms-ms-admin/src/main/java/cn/com/qmth/stmms/ms/admin/service/DataUploadService.java

@@ -223,7 +223,7 @@ public class DataUploadService {
         }
         paper.setUploadedOn(new Date());
         paper.setManual(isManual);
-        String sheetPath = systemConfig.getImageDir() + File.separator + student.getWorkId() + File.separator + subject
+        String sheetPath = systemConfig.getSheetDir() + File.separator + student.getWorkId() + File.separator + subject
     			+ File.separator + student.getAreaCode() + File.separator + student.getExamNumber() + ".jpg";
         String slicePath = systemConfig.getImageDir() + File.separator + student.getWorkId() + File.separator + subject
     			+ File.separator + student.getAreaCode() + File.separator + student.getExamNumber() + ".jpg";

+ 20 - 9
stmms-ms-collect/src/main/java/cn/com/qmth/stmms/ms/collect/util/RotateTask.java

@@ -38,24 +38,37 @@ public class RotateTask  implements Runnable {
 	@Override
 	public void run() {
 		long start = System.currentTimeMillis();
-		 Path thumbPath = Paths.get(systemConfig.getThumbDir(),String.valueOf(paper.getWorkId()),paper.getSubject().toString(),paper.getAreaCode(),paper.getExamNumber() + ".jpg");
-	     Path imagePath = Paths.get(systemConfig.getImageDir(),String.valueOf(paper.getWorkId()),paper.getSubject().toString(),paper.getAreaCode(),paper.getExamNumber() + ".jpg");
 		try {
-			File thumbFile = thumbPath.toFile();
+			String thumbPath = systemConfig.getThumbDir() + File.separator + paper.getWorkId() + File.separator + paper.getSubject().toString()
+					+ File.separator + paper.getAreaCode() + File.separator + paper.getExamNumber() + ".jpg";
+			File thumbFile = new File(thumbPath);
+			File thumbOut =  new File(systemConfig.getThumbDir() + File.separator + paper.getWorkId() + File.separator + paper.getSubject().toString()
+	    			+ File.separator + paper.getAreaCode() + File.separator + paper.getId() + ".jpg");
 			if (thumbFile.exists()) {
 				InputStream is = new FileInputStream(thumbFile);
 				BufferedImage image = ImageIO.read(is);
-				ImageCompression.rotate(thumbFile, thumbFile, degree);
+				ImageCompression.rotate(thumbFile, thumbOut, degree);
 				is.close();
+				thumbFile.renameTo(new File(systemConfig.getThumbDir() + File.separator + paper.getWorkId() + File.separator + paper.getSubject().toString()
+		    			+ File.separator + paper.getAreaCode() + File.separator + paper.getExamNumber() +"_" + start + ".jpg"));
+				thumbOut.renameTo(new File(thumbPath));
 			}
-			File imageFile = imagePath.toFile();
+			
+		    String imagePath = systemConfig.getImageDir() + File.separator + paper.getWorkId() + File.separator + paper.getSubject().toString()
+		    			+ File.separator + paper.getAreaCode() + File.separator + paper.getExamNumber() + ".jpg";
+			File imageFile = new File(imagePath);
+			File imageOut = new File(systemConfig.getImageDir() + File.separator + paper.getWorkId() + File.separator + paper.getSubject().toString()
+		    			+ File.separator + paper.getAreaCode() + File.separator + paper.getId() + ".jpg");
 			if (imageFile.exists()) {
 				InputStream is = new FileInputStream(imageFile);
 				BufferedImage image = ImageIO.read(is);
-				ImageCompression.rotate(imageFile, imageFile, degree);
+				ImageCompression.rotate(imageFile, imageOut, degree);
+				imageFile.renameTo(new File(systemConfig.getImageDir() + File.separator + paper.getWorkId() + File.separator + paper.getSubject().toString()
+		    			+ File.separator + paper.getAreaCode() + File.separator + paper.getExamNumber() +"_"+ start + ".jpg"));
+				imageOut.renameTo(new File(imagePath));
 				is.close();
 			}
-	        FileInputStream in = new FileInputStream(imageFile);
+	        FileInputStream in = new FileInputStream(new File(imagePath));
 	        String sliceMD5 = DigestUtils.md5Hex(in);
 			paper.setSliceMD5(sliceMD5);
 			paperRepo.save(paper);
@@ -65,7 +78,5 @@ public class RotateTask  implements Runnable {
 		} catch (IOException ioe) {
 			ioe.printStackTrace();
 		}
-		long end = System.currentTimeMillis();
-		System.out.println("完成任务,耗时:" + (end - start) + "毫秒");
 	}
 }