suochencheng 7 jaren geleden
bovenliggende
commit
eaede69ab9

+ 9 - 0
pom.xml

@@ -992,6 +992,15 @@
             <artifactId>alipay-sdk-java</artifactId>
             <artifactId>alipay-sdk-java</artifactId>
             <version>3.3.49.ALL</version>
             <version>3.3.49.ALL</version>
         </dependency>
         </dependency>
+        <!-- https://mvnrepository.com/artifact/org.rawdarkroom/it.tidalwave.imageio.raw -->
+        <dependency>
+            <groupId>org.rawdarkroom</groupId>
+            <artifactId>it.tidalwave.imageio.raw</artifactId>
+            <version>1.7-ALPHA-2</version>
+        </dependency>
+
+
+
 
 
     </dependencies>
     </dependencies>
 
 

+ 1 - 1
src/main/java/com/izouma/awesomeadmin/util/ImagesUtil.java

@@ -82,7 +82,7 @@ public class ImagesUtil {
             String format = reader.getFormatName();
             String format = reader.getFormatName();
             BufferedImage image = null;
             BufferedImage image = null;
 
 
-            if ("JPEG".equalsIgnoreCase(format) || "JPG".equalsIgnoreCase(format)|| "PNG".equalsIgnoreCase(format)) {
+            if ("JPEG".equalsIgnoreCase(format) || "JPG".equalsIgnoreCase(format) || "PNG".equalsIgnoreCase(format) || "CR2".equalsIgnoreCase(format)) {
                 try {
                 try {
                     // 尝试读取图片 (包括颜色的转换).
                     // 尝试读取图片 (包括颜色的转换).
                     image = reader.read(0); //RGB
                     image = reader.read(0); //RGB

+ 22 - 1
src/main/java/com/izouma/awesomeadmin/web/OrderImageController.java

@@ -13,6 +13,7 @@ import com.izouma.awesomeadmin.service.*;
 import com.izouma.awesomeadmin.util.ExportExcelUtil;
 import com.izouma.awesomeadmin.util.ExportExcelUtil;
 import com.izouma.awesomeadmin.util.ImagesUtil;
 import com.izouma.awesomeadmin.util.ImagesUtil;
 import com.izouma.awesomeadmin.util.PropertiesFileLoader;
 import com.izouma.awesomeadmin.util.PropertiesFileLoader;
+import org.apache.commons.io.FileUtils;
 import org.apache.commons.lang.StringUtils;
 import org.apache.commons.lang.StringUtils;
 import org.apache.log4j.Logger;
 import org.apache.log4j.Logger;
 import org.apache.shiro.authz.annotation.RequiresAuthentication;
 import org.apache.shiro.authz.annotation.RequiresAuthentication;
@@ -286,8 +287,28 @@ public class OrderImageController {
 
 
                             String minPath = storeId + "/" + orderId + "/" + typeFlag + "/" + "min/" + originalFilename;
                             String minPath = storeId + "/" + orderId + "/" + typeFlag + "/" + "min/" + originalFilename;
 
 
+
+                            InputStream in = file.getInputStream();
+
+                            if ("CR2".equalsIgnoreCase(fileType)) {
+
+                                try {
+                                    File src = new File("/tmp/" + file.getOriginalFilename());
+                                    FileUtils.copyInputStreamToFile(file.getInputStream(), src);
+                                    String[] cmd = {"sh", "-c", "dcraw -v -c -q 0 -w -H 5 -b 8 /tmp/" + file.getOriginalFilename() + " | cjpeg -quality 100 > /tmp/" + file.getOriginalFilename() + ".jpg"};
+                                    Runtime.getRuntime().exec(cmd);
+
+                                    in = new FileInputStream(new File("/tmp/" + file.getOriginalFilename() + ".jpg"));
+
+                                    fileType = "jpg";
+                                } catch (IOException e) {
+                                    e.printStackTrace();
+                                }
+
+                            }
+
                             String min = OSSFileService.upload(ImagesUtil.changeMinPhoto(
                             String min = OSSFileService.upload(ImagesUtil.changeMinPhoto(
-                                    file.getInputStream(),
+                                    in,
                                     fileType,
                                     fileType,
                                     2000, 1), minPath);
                                     2000, 1), minPath);
 
 

+ 16 - 0
src/test/java/UserServiceTest.java

@@ -10,6 +10,10 @@ import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
 import org.springframework.test.context.support.GenericXmlContextLoader;
 import org.springframework.test.context.support.GenericXmlContextLoader;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.transaction.annotation.Transactional;
 
 
+import javax.imageio.ImageIO;
+import java.awt.image.BufferedImage;
+import java.io.File;
+
 @RunWith(value = SpringJUnit4ClassRunner.class)
 @RunWith(value = SpringJUnit4ClassRunner.class)
 @ContextConfiguration(locations = {"classpath:/spring/applicationContext.xml"}, loader = GenericXmlContextLoader.class)
 @ContextConfiguration(locations = {"classpath:/spring/applicationContext.xml"}, loader = GenericXmlContextLoader.class)
 @Transactional
 @Transactional
@@ -26,4 +30,16 @@ public class UserServiceTest {
     public void testFindUserByRoleName() {
     public void testFindUserByRoleName() {
         System.out.println(userInfoService.findUserByRoleName("hr"));
         System.out.println(userInfoService.findUserByRoleName("hr"));
     }
     }
+
+    @Test
+    public void testImage() {
+        try {
+            File file = new File("D:\\项目资料\\图途象平台\\B04A5311.CR2");
+            BufferedImage image = ImageIO.read(file);
+            ImageIO.write(image, "jpg", new File("D:\\项目资料\\图途象平台\\B04A5311.jpg"));
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+
+    }
 }
 }