首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Selenium - TakesScreenshot - java -转换为jpg时出现问题

Selenium - TakesScreenshot - java -转换为jpg时出现问题
EN

Stack Overflow用户
提问于 2021-11-01 19:06:27
回答 1查看 27关注 0票数 0

我有以下java方法,它成功地创建了png文件:

代码语言:javascript
复制
        TakesScreenshot scrShot = ((TakesScreenshot) webdriver);
        File SrcFile = scrShot.getScreenshotAs(OutputType.FILE);
        File DestFile = new File(fileWithPath + featureFileName + ".png");
//        BufferedImage img = ImageIO.read(SrcFile);
//        ImageIO.write(img, "jpg", new File(fileWithPath + featureFileName + ".jpg"));
        FileUtils.copyFile(SrcFile, DestFile);

我试图使用2个注释行将图像转换为jpg格式,但jpg输出文件没有生成。没有错误。没有文件。我不知道为什么。提前感谢您的帮助。

EN

回答 1

Stack Overflow用户

发布于 2021-11-02 09:59:34

您使用的OpenJDK可能存在许多JPG编码问题,特别是当您从png转换时。

因此,您解决方法是将图像BufferedImage转换为另一个BufferedImage,然后将其保存为:

代码语言:javascript
复制
try {
    TakesScreenshot scrShot = ((TakesScreenshot) driver);
    File SrcFile = scrShot.getScreenshotAs(OutputType.FILE);
    BufferedImage pngImage  = ImageIO.read(SrcFile);
    int height = pngImage.getHeight();
    int width = pngImage.getWidth();
    BufferedImage jpgImage = new BufferedImage(width, height, BufferedImage.TYPE_3BYTE_BGR);
    jpgImage.createGraphics().drawImage(pngImage, new AffineTransform(1f,0f,0f,1f,0,0), null);
    ImageIO.write(jpgImage, "jpg", new File("/your_path/output.jpg"));
} catch (IOException e) {
    e.printStackTrace();
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69801639

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档