투명 이미지를 만든 다음 투명/반투명 픽셀이 포함 된 이미지를 다른 이미지 위에 그립니다. 이미지가 추가 된 후 반투명 픽셀은 색상과 알파가 혼합 된 것과 비교하여 흰색으로 설정됩니다. 이로 인해 이미지 주변에 흰색 윤곽선이 생깁니다.SWT 투명 픽셀이 흰색으로 변경되었습니다.
이미지는 투명 픽셀이있는 ToolItem으로 ToolBar에 표시되어야합니다.
투명 픽셀을 흰색으로 변경하지 않고 투명도로 이미지를 그릴 수 있습니까?
오버레이 이미지
처리 된 이미지
final Display display = new Display();
final Shell shell = new Shell(display);
shell.setSize(285,305);
// Create a transparent image
final Image transparentImage = new Image(null, 256, 256);
final ImageData imageData = transparentImage.getImageData();
imageData.transparentPixel = imageData.getPixel(0, 0);
transparentImage.dispose();
// Create an image with the transparent data
final Image processedImage = new Image(Display.getCurrent(),
imageData);
// Get the image to draw onto the transparent image
final Image overlayImage = new Image(display, "overlay_image.png");
final GC imageGC = new GC(processedImage);
imageGC.setAntialias(SWT.ON);
imageGC.drawImage(overlayImage, 0, 0);
imageGC.dispose();
// Create the components and add the image
final ToolBar toolBar = new ToolBar(shell, SWT.FLAT | SWT.BORDER);
final ToolItem item = new ToolItem(toolBar, SWT.NONE);
item.setImage(processedImage);
toolBar.pack();
shell.open();
while (!shell.isDisposed()) {
if (!display.readAndDispatch())
display.sleep();
}
overlayImage.dispose();
display.dispose();