gpt4 book ai didi

Java SWT - 从一个图像溶解(淡化)到下一个图像

转载 作者:行者123 更新时间:2023-11-29 04:02:12 35 4
gpt4 key购买 nike

我对 Java 和 SWT 还很陌生,希望能将一幅图像融入到另一幅图像中。我现在在标签中有一张图片(相关代码):

Device dev = shell.getDisplay();
try {
Image photo = new Image(dev, "photo.jpg");
} catch(Exception e) { }

Label label = new Label(shell, SWT.IMAGE_JPEG);
label.setImage(photo);

现在我想让 photo 以我指定的速度淡入不同的图像。这是可能的设置在这里,还是我需要深入研究 org.eclipse.swt.graphics api?

此外,这将是一个可能包含数百张照片的幻灯片放映,只会向前移动(永远不会回到以前的图像)---考虑到这一点,我是否明确需要做些什么来删除旧的内存中的图像?

谢谢!!

最佳答案

我不知道有任何直接支持此类功能的 swt 小部件,您最好的选择是扩展 org.eclipse.swt.widgets.Canvas 并添加一个 org. eclipse.swt.events.PaintListener 可以处理绘制 2 个具有不同 alpha 的重叠图像。所以像这样:

addPaintListener(new PaintListener() {
public void paintControl(PaintEvent e) {
e.gc.setAlpha(50);
e.gc.drawImage(image1, 0, 0);
e.gc.setAlpha(100);
e.gc.drawImage(image2, 0, 0);
}
});

之后,您只需创建一个线程更改,重新绘制您的 Canvas 并在某个时间间隔更改图像/alpha 值。


关于从内存中删除 Image 的问题是通过调用 Image 对象上的 dispose() 来完成的,让它得到使用 swt 时收集的垃圾是不够的。

关于Java SWT - 从一个图像溶解(淡化)到下一个图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2706310/

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