JavaFX Canvas绘制具有透明度的图像
发布时间:2020-12-15 04:45:03 所属栏目:Java 来源:网络整理
导读:使用 JavaFX Canvas,您可以使用drawImage().但是,无论如何都要用透明度绘制图像(仅用50%的不透明度绘制)或用颜色着色? 解决方法 控制画布绘制操作的方法 有一些方法可以控制绘制画布绘制操作的属性: setGlobalAlpha()控制不透明度. setGlobalBlendMode()
使用
JavaFX Canvas,您可以使用drawImage().但是,无论如何都要用透明度绘制图像(仅用50%的不透明度绘制)或用颜色着色?
解决方法
控制画布绘制操作的方法
有一些方法可以控制绘制画布绘制操作的属性: > setGlobalAlpha()控制不透明度. 样本用法 该程序使用的源图像是: import javafx.application.Application; import javafx.scene.*; import javafx.scene.canvas.*; import javafx.scene.effect.*; import javafx.scene.image.Image; import javafx.scene.paint.*; import javafx.stage.Stage; public class CanvasEffects extends Application { @Override public void start(Stage stage) { final Image image = new Image(IMAGE_LOC); final int NUM_IMGS = 5; final double W = image.getWidth(); final double H = image.getWidth(); final Canvas canvas = new Canvas(W * NUM_IMGS,H); final GraphicsContext gc = canvas.getGraphicsContext2D(); gc.setFill(Color.GOLD); gc.fillRect(0,canvas.getWidth(),canvas.getHeight()); gc.setGlobalBlendMode(BlendMode.SCREEN); for (int i = 0 ; i < NUM_IMGS; i++) { final double opacity = 1 - ((double) i) / NUM_IMGS; System.out.println(opacity); gc.setGlobalAlpha(opacity); gc.setEffect(new BoxBlur(i * 2,i * 2,3)); gc.drawImage(image,i * W,0); } stage.setScene(new Scene(new Group(canvas))); stage.show(); } public static void main(String[] args) { launch(args); } // icon license: Linkware (Backlink to http://uiconstock.com required) commercial usage not allowed. private static final String IMAGE_LOC = "http://icons.iconarchive.com/icons/uiconstock/flat-halloween/128/Halloween-Bat-icon.png"; } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |