HellHorse
2004-07-13, 21:53:14
Hi
Im Moment arbeite ich mich gerade in SWT ein. Ist wie Swing, nur mühsamer. :D
Zu den mühsameren Sachen gehört das erstellen von Icons mit Transparenz.
Für GIFs habe ich es hingekriegt, aber für PNGs will es nicht.
private void createToolBar() {
ToolBar toolBar = new ToolBar(this.shell, SWT.FLAT | SWT.HORIZONTAL);
String[] pngIcons = new String[]{"icons/stock_save.png",
"icons/stock_save_as.png",
"icons/stock_export.png",
"icons/stock_revert.png"};
String[] gifIcons = new String[]{"icons/stock_save.gif",
"icons/stock_save_as.gif",
"icons/stock_export.gif",
"icons/stock_revert.gif"};
ToolItem item;
for (int i = 0; i < pngIcons.length; ++i) {
item = new ToolItem(toolBar, SWT.PUSH);
ImageData data = new ImageData(this.getClass().getClassLoader().getResourceAsStream(pngIcons[i]));
ImageData mask = data.getTransparencyMask();
Image icon = new Image(this.display, data, mask);
item.setImage(icon);
item.setToolTipText(pngIcons[i]);
}
for (int i = 0; i < gifIcons.length; ++i) {
item = new ToolItem(toolBar, SWT.PUSH);
ImageData data = new ImageData(this.getClass().getClassLoader().getResourceAsStream(gifIcons[i]));
ImageData mask = data.getTransparencyMask();
Image icon = new Image(this.display, data, mask);
item.setImage(icon);
item.setToolTipText(gifIcons[i]);
}
}
Wie das ganze aussieht:
http://web.green.ch/marschall/pics/alphaicons.gif
Links die PNGs mit schwarzem Rand statt Transparenz, rechts die GIFs mit Transparenz. Der weisse Rand muss sein, er entstand bei der Konversion von PNG zu GIF.
Ideen?
Im Moment arbeite ich mich gerade in SWT ein. Ist wie Swing, nur mühsamer. :D
Zu den mühsameren Sachen gehört das erstellen von Icons mit Transparenz.
Für GIFs habe ich es hingekriegt, aber für PNGs will es nicht.
private void createToolBar() {
ToolBar toolBar = new ToolBar(this.shell, SWT.FLAT | SWT.HORIZONTAL);
String[] pngIcons = new String[]{"icons/stock_save.png",
"icons/stock_save_as.png",
"icons/stock_export.png",
"icons/stock_revert.png"};
String[] gifIcons = new String[]{"icons/stock_save.gif",
"icons/stock_save_as.gif",
"icons/stock_export.gif",
"icons/stock_revert.gif"};
ToolItem item;
for (int i = 0; i < pngIcons.length; ++i) {
item = new ToolItem(toolBar, SWT.PUSH);
ImageData data = new ImageData(this.getClass().getClassLoader().getResourceAsStream(pngIcons[i]));
ImageData mask = data.getTransparencyMask();
Image icon = new Image(this.display, data, mask);
item.setImage(icon);
item.setToolTipText(pngIcons[i]);
}
for (int i = 0; i < gifIcons.length; ++i) {
item = new ToolItem(toolBar, SWT.PUSH);
ImageData data = new ImageData(this.getClass().getClassLoader().getResourceAsStream(gifIcons[i]));
ImageData mask = data.getTransparencyMask();
Image icon = new Image(this.display, data, mask);
item.setImage(icon);
item.setToolTipText(gifIcons[i]);
}
}
Wie das ganze aussieht:
http://web.green.ch/marschall/pics/alphaicons.gif
Links die PNGs mit schwarzem Rand statt Transparenz, rechts die GIFs mit Transparenz. Der weisse Rand muss sein, er entstand bei der Konversion von PNG zu GIF.
Ideen?