@Override
public
Image getImage(Object element)
{
//
獲得文件圖標
ImageIcon systemIcon = (ImageIcon) FileSystemView.getFileSystemView().getSystemIcon((File) element);
java.awt.Image p_w_picpath = systemIcon.getImage();
int
width = p_w_picpath.getWidth(
null
);
int
height = p_w_picpath.getHeight(
null
);
//
建立用於繪製
Icon
的緩衝區
BufferedImage bufferedImage =
new
BufferedImage(width, height, BufferedImage.
TYPE_INT_RGB
);
//
繪製
Icon
到緩衝區
Graphics2D g2d = bufferedImage.createGraphics();
g2d.drawImage(p_w_picpath, 0, 0,
null
);
g2d.dispose();
//
讀取緩衝區圖片數據到一個數組
int
[] data = ((DataBufferInt) bufferedImage.getData().getDataBuffer()).getData();
//
根據數組數據生成
ImageData
對象
ImageData p_w_picpathData =
new
ImageData(width, height, 24,
new
PaletteData(0xFF0000, 0x00FF00, 0x0000FF));
p_w_picpathData.setPixels(0, 0, data.
length
, data, 0);
//
生成
Image
對象
Image swtImage =
new
Image(PlatformUI.getWorkbench().getDisplay(), p_w_picpathData);
return
swtImage;
}
|
@Override
public
Image getImage(Object element)
{
//
獲得文件圖標
ImageIcon systemIcon = (ImageIcon) FileSystemView.getFileSystemView().getSystemIcon((File) element);
java.awt.Image p_w_picpath = systemIcon.getImage();
int
width = p_w_picpath.getWidth(
null
);
int
height = p_w_picpath.getHeight(
null
);
//
建立用於繪製
Icon
的緩衝區
BufferedImage bufferedImage =
new
BufferedImage(width, height, BufferedImage.
TYPE_INT_RGB
);
//
繪製
Icon
到緩衝區
Graphics2D g2d = bufferedImage.createGraphics();
g2d.drawImage(p_w_picpath, 0, 0,
null
);
g2d.dispose();
//
讀取緩衝區圖片數據到一個數組
int
[] data = ((DataBufferInt) bufferedImage.getData().getDataBuffer()).getData();
//
將沒有顏色的點設置爲白色
for
(
int
i = 0; i < data.
length
; i++)
{
if
(data[i] == 0)
data[i] = 0xFFFFFF;
}
//
根據數組數據生成
ImageData
對象
ImageData p_w_picpathData =
new
ImageData(width, height, 24,
new
PaletteData(0xFF0000, 0x00FF00, 0x0000FF));
p_w_picpathData.setPixels(0, 0, data.
length
, data, 0);
//
生成
Image
對象
Image swtImage =
new
Image(PlatformUI.getWorkbench().getDisplay(), p_w_picpathData);
return
swtImage;
}
|
@Override
public
Image getImage(Object element)
{
//
獲得文件圖標
ImageIcon systemIcon = (ImageIcon) FileSystemView.getFileSystemView().getSystemIcon((File) element);
java.awt.Image p_w_picpath = systemIcon.getImage();
int
width = p_w_picpath.getWidth(
null
);
int
height = p_w_picpath.getHeight(
null
);
//
獲得
Icon
的數據緩衝區
BufferedImage bufferedImage = (BufferedImage) systemIcon.getImage();
//
讀取緩衝區圖片數據到一個數組
int
[] data = ((DataBufferInt) bufferedImage.getData().getDataBuffer()).getData();
//
將沒有顏色的點設置爲白色
for
(
int
i = 0; i < data.
length
; i++)
{
if
(data[i] == 0)
data[i] = 0xFFFFFF;
}
//
根據數組數據生成
ImageData
對象
ImageData p_w_picpathData =
new
ImageData(width, height, 24,
new
PaletteData(0xFF0000, 0x00FF00, 0x0000FF));
p_w_picpathData.setPixels(0, 0, data.
length
, data, 0);
//
生成
Image
對象
Image swtImage =
new
Image(PlatformUI.getWorkbench().getDisplay(), p_w_picpathData);
return
swtImage;
}
|