2013-10-24 2 views
2

я пытаюсь сделать анимированный GIF из старой игры под названием Age Of Empires ... и GIF делает странно с черным, а не прозрачным ... МФПОМ является любой GIF из http://ageofempiresgif.altervista.org/en/archive.phpJavaFX изображения не отображается правильно

+0

Не видя кода или, по крайней мере, объяснение того, как вы рендеринга изображения, это практически невозможно для нас, чтобы предложить помощь. –

+0

Я использую изображение с изображением gif – user2916346

+0

ImageView img = new ImageView(); – user2916346

ответ

3

Выпуск реплицируются

Я могу повторить неправильный рендеринг эпохи империй гифы на моей машине (Java8b111, Win7, ATI Radeon HD 4600).

blackknight

Выпуск отслеживаются в JavaFX Issue Tracker

Издание является RT-23233 GIF frames have incorrect background (знак-на требуется, но кто-нибудь может войти в систему, и в представленной ссылке и просмотреть детали выпуска). Эта проблема запланирована для реализации в выпуске после выпуска Java 8.

Причина в том, что JavaFX строго придерживается спецификации gif, тогда как большинство реализаций рендеринга gif (например, всех распространенных браузеров) являются более разрешительными и, таким образом, отображают изображение по-разному («правильно»). Связанный RT-23233 представляет собой запрос на ослабление реализации gif-рендеринга JavaFX, чтобы он отображал gifs, например, gifs Age of Empires.

Пример программы, которая воспроизводит проблему только с помощью 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

webviewimages

Пример страницы отображаются в Firefox

firefoximages

Смежные вопросы