Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
减少java中JPG文件的文件大小_Java_Selenium_Screenshot_Filesize_Javax.imageio - Fatal编程技术网

减少java中JPG文件的文件大小

减少java中JPG文件的文件大小,java,selenium,screenshot,filesize,javax.imageio,Java,Selenium,Screenshot,Filesize,Javax.imageio,我们已经通过使用生成了一个JPG文件 org.openqa.selenium.TakesScreenshotclass File src = ((TakesScreenshot) driver).getScreenshotAs(OutputType.FILE); File dest = new File("C:\\Users\\admin\\Desktop\\Images\\29_18-03-20-07-11-47.jpg"); FileHandler.copy(src, dest); 因为生

我们已经通过使用生成了一个JPG文件
org.openqa.selenium.TakesScreenshot
class

File src = ((TakesScreenshot) driver).getScreenshotAs(OutputType.FILE);
File dest = new File("C:\\Users\\admin\\Desktop\\Images\\29_18-03-20-07-11-47.jpg");
FileHandler.copy(src, dest);
因为生成的映像的文件大小为1.5MB到2.9MB。我们希望将文件大小减少到kbs

我们尝试了ImageIO,但生成的图像没有原始文件颜色空间/颜色配置文件

File input = new File("C:\\Users\\admin\\Desktop\\Images\\29_18-03-20-07-11-47.jpg");
File compressedImageFile = new File("C:\\Users\\admin\\Desktop\\Images\\compressed_image7.jpg");

BufferedImage image = ImageIO.read(input);
OutputStream os = new FileOutputStream(compressedImageFile);
Iterator<ImageWriter writers = ImageIO.getImageWritersByFormatName("jpg");

ImageWriter writer = (ImageWriter) writers.next();
ImageOutputStream ios = ImageIO.createImageOutputStream(os);
writer.setOutput(ios);

ImageWriteParam param = writer.getDefaultWriteParam();
param.setCompressionMode(ImageWriteParam.MODE_EXPLICIT);
param.setCompressionQuality(0.05f);         
writer.write(null, new IIOImage(image, null, null), param);
File input=新文件(“C:\\Users\\admin\\Desktop\\Images\\29_18-03-20-07-11-47.jpg”);
File compressedImageFile=新文件(“C:\\Users\\admin\\Desktop\\Images\\compressed\u image7.jpg”);
BuffereImage image=ImageIO.read(输入);
OutputStream os=新文件OutputStream(compressedImageFile);

迭代器尝试使用无损JPEG

ImageWriter writer= (ImageWriter) ImageIO.getImageWritersByFormatName("jpeg").next();
ImageWriteParam param= writer.getDefaultWriteParam();
param.setCompressionMode(param.MODE_EXPLICIT);
param.setCompressionType("JPEG-LS");
writer.setOutput(ImageIO.createImageOutputStream(new File(path)));
writer.write(null, new IIOImage(image, null, null), param);

这回答了你的问题吗?我也试过了,但没有任何帮助。图像的大小(以像素为单位)是多少?图像的大小是2048X1536JPEG默认是有损的。JPEG-LS是无损的!获取java.lang.IllegalArgumentException:未知压缩类型!也尝试了JPEG,但在image@JoachimSauer谢谢你的更新