gpt4 book ai didi

image-processing - 如何在 JavaFX 中更改图像的颜色

转载 作者:行者123 更新时间:2023-12-03 18:09:00 25 4
gpt4 key购买 nike

我有一个像这样的 PNG 图像:

png image

我想将图像更改为这样的:

enter image description here

我怎样才能在 JavaFX 中做到这一点?

最佳答案

由于您不在乎它是矢量形状还是位图,因此我将在此处使用位图概述解决方案。如果你真的想要一个矢量形状,我相信你需要使用矢量输入来获得一个好的结果。

在亮度设置为最小值 (-1) 的情况下使用 ColorAdjust 效果。
缓存 SPEED 的结果。

speed

这是一个创建图像阴影轮廓的示例:

import javafx.application.Application;
import javafx.scene.*;
import javafx.scene.effect.ColorAdjust;
import javafx.scene.image.*;
import javafx.stage.Stage;

public class Shadow extends Application {
@Override
public void start(Stage stage) throws Exception {
ImageView imageView = new ImageView(
new Image(
"http://i.stack.imgur.com/jbT1H.png"
)
);

ColorAdjust blackout = new ColorAdjust();
blackout.setBrightness(-1.0);

imageView.setEffect(blackout);
imageView.setCache(true);
imageView.setCacheHint(CacheHint.SPEED);

stage.setScene(new Scene(new Group(imageView)));
stage.show();
}

public static void main(String[] args) {
Application.launch();
}
}

这是另一个调整图像颜色的示例,将鼠标悬停在 smurfette 上使她脸红。

smurfette
blushing smurfette
import javafx.application.Application;
import javafx.beans.binding.Bindings;
import javafx.scene.*;
import javafx.scene.effect.*;
import javafx.scene.image.*;
import javafx.scene.paint.Color;
import javafx.stage.Stage;

public class Shadow extends Application {
@Override
public void start(Stage stage) throws Exception {
Image image = new Image(
"http://icons.iconarchive.com/icons/designbolts/smurfs-movie/128/smurfette-icon.png"
);

ImageView imageView = new ImageView(image);
imageView.setClip(new ImageView(image));

ColorAdjust monochrome = new ColorAdjust();
monochrome.setSaturation(-1.0);

Blend blush = new Blend(
BlendMode.MULTIPLY,
monochrome,
new ColorInput(
0,
0,
imageView.getImage().getWidth(),
imageView.getImage().getHeight(),
Color.RED
)
);

imageView.effectProperty().bind(
Bindings
.when(imageView.hoverProperty())
.then((Effect) blush)
.otherwise((Effect) null)
);

imageView.setCache(true);
imageView.setCacheHint(CacheHint.SPEED);

stage.setScene(new Scene(new Group(imageView), Color.AQUA));
stage.show();
}

public static void main(String[] args) {
Application.launch();
}
}

关于image-processing - 如何在 JavaFX 中更改图像的颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18124364/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com