2
我有兩條關於存儲在兩個單獨圖像中的數據的圖。我需要將它們放在一個圖像中,以便我可以看到差異。如何在javaFX中完成此操作?如何在javaFX中混合兩個圖像
我有兩條關於存儲在兩個單獨圖像中的數據的圖。我需要將它們放在一個圖像中,以便我可以看到差異。如何在javaFX中完成此操作?如何在javaFX中混合兩個圖像
解決方案
放置在一個Group兩個圖像,並通過設置blendMode of the topmost Node應用BlendMode。
ImageView bottom = new ImageView(coke);
ImageView top = new ImageView(pepsi);
top.setBlendMode(BlendMode.DIFFERENCE);
Group blend = new Group(
bottom,
top
);
可執行樣品
採取百事可樂的挑戰?您看得出來差別嗎?
import javafx.application.Application;
import javafx.geometry.Insets;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.effect.BlendMode;
import javafx.scene.image.Image;
import javafx.scene.image.ImageView;
import javafx.scene.layout.HBox;
import javafx.stage.Stage;
/** Blend a coke can and a pepsi can to find the difference. */
public class PepsiChallenge extends Application {
@Override
public void start(Stage stage) {
Image coke = new Image(
"http://icons.iconarchive.com/icons/michael/coke-pepsi/256/Coca-Cola-Can-icon.png"
);
Image pepsi = new Image(
"http://icons.iconarchive.com/icons/michael/coke-pepsi/256/Pepsi-Can-icon.png"
);
ImageView bottom = new ImageView(coke);
ImageView top = new ImageView(pepsi);
top.setBlendMode(BlendMode.DIFFERENCE);
Group blend = new Group(
bottom,
top
);
HBox layout = new HBox(10);
layout.getChildren().addAll(
new ImageView(coke),
blend,
new ImageView(pepsi)
);
layout.setPadding(new Insets(10));
stage.setScene(new Scene(layout));
stage.show();
}
public static void main(String[] args) {
launch();
}
}
你可以幫我解決這個問題? http://stackoverflow.com/q/22088217/2722799 –
嗯..我知道你在javaFX方面經驗太豐富了,因爲我在所有問題中總是從你的答案中獲得幫助。所以我認爲你可能會幫助我完成。 。 提前致謝 –