提问人:Kuba 提问时间:10/8/2023 更新时间:10/8/2023 访问量:20
使用 ImageData 和高斯模糊在 SWT 中创建阴影图像
Creating shadow image in SWT using ImageData and Gaussian blur
问:
我正在尝试在 SWT 中以编程方式创建阴影背景图像以模仿材质阴影。我认为最好的方法是创建空的透明图像,并使用 GC 在其上绘制黑色圆角矩形,并对其进行一些高斯模糊。
我正在努力解决矩形圆角的透明度问题。
ImageLoader saver = new ImageLoader();
int width = 140;
int height = 140;
// create empty image
Image src = new Image(null, width, height);
// use GC to draw shape
GC gc = new GC(src);
gc.setAntialias(SWT.ON);
gc.setAlpha(0);
gc.fillRectangle(0, 0, width, height);
gc.setAlpha(255);
gc.setBackground(Display.getDefault().getSystemColor(SWT.COLOR_BLACK));
gc.fillRoundRectangle(20, 20, 100, 100, 22, 22);
gc.dispose();
ImageData imageData = src.getImageData();
imageData.transparentPixel = imageData.getPixel(0, 0);
Image dest = new Image(null, imageData);
saver.data = new ImageData[] {dest.getImageData()};
saver.save("result", SWT.IMAGE_PNG);
这是运行我的代码的结果:
使用 Nebula/Opal 项目 https://github.com/lcaron/opal/blob/master/src/main/java/org/mihalis/opal/utils/SWTGraphicUtil.java 中的代码添加模糊后,我得到了如下内容:
如何去除白色的边缘和角落,如何为图像添加适当的透明度?
答: 暂无答案
评论
alphaData
ImageData