相关疑难解决方法(0)

使用Selenium WebDriver截取屏幕截图

有谁知道是否可以使用Selenium WebDriver截取屏幕截图?(注:不是Selenium RC)

selenium selenium-webdriver ashot takesscreenshot selenium-shutterbug

478
推荐指数
16
解决办法
52万
查看次数

使用java将透明gif/png转换为jpeg

我想使用Java将gif图像转换为jpeg.它适用于大多数图像,但我有一个简单的透明gif图像:

输入gif图像http://img292.imageshack.us/img292/2103/indexedtestal7.gif

[如果图像丢失:它是一个蓝色圆圈,周围有透明像素]

当我使用以下代码转换此图像时:

File file = new File("indexed_test.gif");
BufferedImage image = ImageIO.read(file);
File f = new File("indexed_test.jpg");
ImageIO.write(image, "jpg", f);
Run Code Online (Sandbox Code Playgroud)

此代码可以在不抛出异常的情况下工作,但会导致无效的jpeg图像:

输出jpeg图像

[如果图像丢失:IE无法显示jpeg,Firefox会显示无效颜色的图像.]

我正在使用Java 1.5.

我还尝试使用gimp将示例gif转换为png并使用png作为Java代码的输入.结果是一样的.

这是JDK中的错误吗?如何在没有第三方库的情况下正确转换图像?

更新:

答案表明jpeg转换无法正确处理透明度(我仍然认为这是一个错误)并建议使用预定义颜色替换透明像素的解决方法.这两种建议的方法都非常复杂,所以我实现了一个更简单的方法(将作为答案发布).我接受了第一个已发布的答案(Markus).我不知道哪种实现更好.我选择了最简单的一个,但我发现它不起作用的gif.

java transparency jpeg gif java-io

20
推荐指数
3
解决办法
3万
查看次数

Selenium:无法使用 aShot 库截取完整的页面截图

我正在尝试使用Firefox geckodriver 和aShot Library水平和垂直拍摄完整的页面截图。

然而,结果并不如预期。看一看:

在此处输入图片说明

driver.get("https://google.com");

Screenshot fpScreenshot = new AShot().shootingStrategy(ShootingStrategies.viewportPasting(1000)).takeScreenshot(driver);
ImageIO.write(fpScreenshot.getImage(),"JPEG",new File("FullPageScreenshot.jpg"));
Run Code Online (Sandbox Code Playgroud)

研究了很多变体,但没有任何效果。有趣的是,当我尝试使用旧的 Firefox 版本 (46) 时,我可以在没有任何第三方库的情况下截取完整的屏幕截图。我正在尝试使用最新的 Firefox 并具有完整的屏幕截图功能。

有什么帮助吗?

java selenium selenium-chromedriver geckodriver ashot

1
推荐指数
1
解决办法
5439
查看次数