If you need to read a Windows ICO file from Java, UCWare IconTools for the Java platform may come in handy.
UCWare IconTools lets you read an icon into memory with
just one line of code:
Icon[] icons = IconTools.readIcons(new File("C:\\my.ico"));
As the result, you get an array of objects that implement the javax.swing.Icon interface. javax.swing.Icon allows for using icons throughout Swing (for instance, you can set icons on JButtons), and also in Java2D for obtaining BufferedImages, and so on.
UCWare IconTools supports multi-resolution icons with varying color depths, and also supports alpha channel transparency.
The following code snippet
will display all icons from a single file as buttons:
Here are the on-screen results:
contentPane = (JPanel) getContentPane();
pane.setLayout(new java.awt.FlowLayout(java.awt.FlowLayout.LEFT));
setTitle("DemoReader");
Icon[] ic = IconTools.readIcons(new File(args[0]));
for (int i = 0; i < ic.length; i++)
{
Icon icon = ic[i];
IcoIcon iic = (IcoIcon) icon;
String inf = iic.getIconWidth()+"x"+iic.getIconHeight()
+"@"+iic.getBiBitCount();
pane.add(new JButton(inf, icon));
}
contentPane.add(pane);
Javadoc documentation for UCWare IconTools is available here.