我试图从一个名为Age Of Empires的老游戏中渲染一个GIF动画...而gif用黑色而不是透明渲染奇怪...... gif是来自http://ageofempiresgif.altervista.org/en/archive.php
的任何gif答案 0 :(得分:3)
问题已复制
我可以在我的机器上复制Age of Empires GIF的错误渲染(Java8b111,Win7,ATI Radeon HD 4600)。
在JavaFX问题跟踪器中跟踪的问题
问题是RT-23233 GIF frames have incorrect background(需要登录,但是任何人都可以注册并在提供的链接上查看问题详情)。该问题计划在Java 8后发布中实施。
原因是JavaFX严格遵守gif规范,而大多数gif渲染实现(例如所有常见浏览器)更宽松,因此以不同方式呈现图像(“正确”)。链接的RT-23233是一个放宽JavaFX gif渲染器实现的请求,以便它能正确渲染诸如Age of Empires gifs之类的GIF。
仅使用ImageView
复制问题的示例程序import javafx.application.Application;
import javafx.scene.*;
import javafx.scene.image.*;
import javafx.stage.Stage;
public class AOE extends Application {
@Override public void start(final Stage stage) throws Exception {
stage.setScene(
new Scene(
new Group(
new ImageView(
new Image(
"http://ageofempiresgif.altervista.org/33995109.gif"
)
)
)
)
);
stage.show();
}
public static void main(String[] args) { launch(AOE.class); }
}
仅使用WebView
复制问题的示例程序import javafx.application.Application;
import javafx.scene.*;
import javafx.scene.web.WebView;
import javafx.stage.Stage;
public class AoEWebView extends Application {
@Override public void start(final Stage stage) throws Exception {
WebView webView = new WebView();
webView.getEngine().load("http://ageofempiresgif.altervista.org/en/archive.php");
stage.setScene(
new Scene(
new Group(
webView
)
)
);
stage.show();
}
public static void main(String[] args) { launch(AoEWebView.class); }
}
在JavaFX WebView中呈现的示例页
在Firefox中呈现的示例页