public
static
Image getSWTImageFromSwing(ImageIcon p_w_picpathIcon)
{
if
(p_w_picpathIcon.getImage()
instanceof
BufferedImage)
{
BufferedImage bufferedImage = (BufferedImage) p_w_picpathIcon.getImage();
DirectColorModel colorModel = (DirectColorModel)bufferedImage.getColorModel();
PaletteData palette =
new
PaletteData(colorModel.getRedMask(), colorModel.getGreenMask(), colorModel.getBlueMask());
ImageData data =
new
ImageData(bufferedImage.getWidth(), bufferedImage.getHeight(), colorModel.getPixelSize(), palette);
//
設置每一個像素點的顏色與
Alpha
值
for
(
int
y = 0; y < data.
height
; y++) {
for
(
int
x = 0; x < data.
width
; x++) {
int
rgb = bufferedImage.getRGB(x, y);
int
pixel = palette.getPixel(
new
RGB((rgb >> 16) & 0xFF, (rgb >> 8) & 0xFF, rgb & 0xFF));
data.setPixel(x, y, pixel);
if
(colorModel.hasAlpha()) {
data.setAlpha(x, y, (rgb >> 24) & 0xFF);
}
}
}
//
生成
Image
對象
Image swtImage =
new
Image(PlatformUI.getWorkbench().getDisplay(),
data);
return
swtImage;
}
}
|