我正在尝试从一个名为Age Of Empires的老游戏中渲染动画gif,而gif却奇怪地用黑色而不是透明的来渲染... gif是http://ageofempiresgif.altervista.org/en/的任何gif。archive.php
问题已复制
我可以在机器(Java8b111,Win7,ATI Radeon HD 4600)上复制帝国时代gif的错误渲染。
JavaFX问题跟踪器中跟踪的问题
问题是RT-23233 GIF框架的背景不正确(需要登录,但是任何人都可以通过提供的链接进行注册并查看问题的详细信息)。该问题计划在Java 8后发行版中实现。
原因是JavaFX严格遵守gif规范,而大多数gif渲染实现(例如,所有常见的浏览器)更宽松,因此以不同的方式(“正确”)渲染图像。链接的RT-23233是放松JavaFX gif渲染器实现的请求,以便它将正确渲染诸如帝国时代gif之类的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中呈现的示例页面
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句