站内搜索: 请输入搜索关键词

当前页面: 开发资料首页Java 专题Java读取ico文件

Java读取ico文件

摘要: Java读取ico文件

</td> </tr> <tr> <td height="35" valign="top" class="ArticleTeitle"> <table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr> <td width="492" height="86" align="left" valign="top">

Java读取ico文件,用ico做新的鼠标图标。

需要在程序里用ico做鼠标,但在jdk中没找到可以读取ico文件的方法。只好到网上找,在百度里搜索了半天也没看出个啥,用google搜索 ‘java ico'一下就搜索出来办法了。

0 前言

进入下面这个地址:

http://www.acproductions.de/commercial/aclibico/

Java library for ICO files ? 2003-2006 Christian Treber

感谢Christian Treber这个老外的作品,可以让我方便的读取ico,而且使用是免费的。

1下载这个包: aclibico-2.1.zip

2 解压缩得到这个jar文件:aclibico-2.1.jar

这个就是我们需要的可以把ico转换成image的东

下面是网站上关于这个包的的介绍:

</td> <td width="265" valign="top"> </td> </tr> </table>
<table class=MsoTableGrid style="BORDER-RIGHT: medium none; BORDER-TOP: medium none; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none; BORDER-COLLAPSE: collapse; mso-border-alt: solid windowtext .5pt; mso-yfti-tbllook: 480; mso-padding-alt: 0cm 5.4pt 0cm 5.4pt; mso-border-insideh: .5pt solid windowtext; mso-border-insidev: .5pt solid windowtext" cellSpacing=0 cellPadding=0 border=1> <tr style="mso-yfti-irow: 0; mso-yfti-firstrow: yes; mso-yfti-lastrow: yes"> <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 1pt solid; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 1pt solid; WIDTH: 426.1pt; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt" vAlign=top width=568> <table class=MsoNormalTable style="WIDTH: 100%; mso-padding-alt: 2.25pt 2.25pt 2.25pt 2.25pt; mso-cellspacing: 0cm" cellSpacing=0 cellPadding=0 width="100%" border=1> <tr style="mso-yfti-irow: 0; mso-yfti-firstrow: yes"> <td style="PADDING-RIGHT: 2.25pt; PADDING-LEFT: 2.25pt; BACKGROUND: #ffa45b; PADDING-BOTTOM: 2.25pt; PADDING-TOP: 2.25pt" vAlign=top>

What it Does

</td> </tr> <tr style="mso-yfti-irow: 1"> <td style="PADDING-RIGHT: 2.25pt; PADDING-LEFT: 2.25pt; BACKGROUND: #a8a8ff; PADDING-BOTTOM: 2.25pt; PADDING-TOP: 2.25pt" vAlign=top>

· Read ICO files from file, stream, buffer, URL

· Convert ICO file into Java Image objects

</td> </tr> <tr style="mso-yfti-irow: 2"> <td style="PADDING-RIGHT: 2.25pt; PADDING-LEFT: 2.25pt; BACKGROUND: #ffa45b; PADDING-BOTTOM: 2.25pt; PADDING-TOP: 2.25pt" vAlign=top>

What it Needs

</td> </tr> <tr style="mso-yfti-irow: 3"> <td style="PADDING-RIGHT: 2.25pt; PADDING-LEFT: 2.25pt; BACKGROUND: #a8a8ff; PADDING-BOTTOM: 2.25pt; PADDING-TOP: 2.25pt" vAlign=top>

· Java Runtime 1.4 or higher

</td> </tr> <tr style="mso-yfti-irow: 4"> <td style="PADDING-RIGHT: 2.25pt; PADDING-LEFT: 2.25pt; BACKGROUND: #ffa45b; PADDING-BOTTOM: 2.25pt; PADDING-TOP: 2.25pt" vAlign=top>

What it Costs

</td> </tr> <tr style="mso-yfti-irow: 5; mso-yfti-lastrow: yes"> <td style="PADDING-RIGHT: 2.25pt; PADDING-LEFT: 2.25pt; BACKGROUND: #a8a8ff; PADDING-BOTTOM: 2.25pt; PADDING-TOP: 2.25pt" vAlign=top>

· Nothing - it's for free.

</td> </tr> </table>

</td> </tr> </table>

在网站上竟然没有发现一个如何使用这个包的说明例子:只能自己看API了。

3 在下载下来的aclibico-2.1.zip压缩包里有AC.lib-ICOJavaDoc.pdfAPI文档

因为是pdf文档,找起api来很麻烦,所以把需要的api直接截图下来,方便查看

4 在程序使用aclibico-2.1.jar

在工程的路径下添加这个包,就可以转换ico文件了。

下面是我如何使用这个包的

<table class=MsoTableGrid style="BORDER-RIGHT: medium none; BORDER-TOP: medium none; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none; BORDER-COLLAPSE: collapse; mso-border-alt: solid windowtext .5pt; mso-yfti-tbllook: 480; mso-padding-alt: 0cm 5.4pt 0cm 5.4pt; mso-border-insideh: .5pt solid windowtext; mso-border-insidev: .5pt solid windowtext" cellSpacing=0 cellPadding=0 border=1> <tr style="mso-yfti-irow: 0; mso-yfti-firstrow: yes; mso-yfti-lastrow: yes"> <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 1pt solid; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 1pt solid; WIDTH: 566.6pt; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt" vAlign=top width=755>

//导入aclibico-2.1.jar的ICOFile类,这是我们需要的转换ico文件的类

import com.ctreber.aclib.image.ico.ICOFile;

//ico所在的路径表示成一个url

String tmp = this.baseUrl + "/ico/" + icoName + ".ico";

URL u = new URL(tmp);

//这里就是读取ico文件的方法。我是通过一个url读取的。

ICOFile ico = new ICOFile(u);

//可能ico文件里不止一个图片,返回图片列表

java.util.List list = ico.getImages();

Image image = null;

//因为我确定我读取的ico里只包括一张图片,所以我判定是否为空。然后取出一张来,可能里面有好几张。可以都取出来。

if (!list.isEmpty()) {

//不为空我就取出那张图片来

image = (Image) list.get(0);

}

//我读取的ico是16*16的,我想把它弄大一点点,所以把它拉伸20*20.用sun的图象处理api真方便,只要一行代码。

image = image.getScaledInstance(20, 20, Image.SCALE_SMOOTH);

//最后,我把这张20*20的图片做为我新的鼠标图案,在程序里就可以直接使用新的鼠标图案了

Cursor newCursor = Toolkit.getDefaultToolkit().createCustomCursor(image, new Point(10, 10), cursorName);

</td> </tr> </table>

5 结束语

这个包使用起来还是很方便的,而且很小。这样在程序里做GUI的鼠标图案就很方便了。

另外用bmp.jpeg。。等其他官方jdk支持的图象格式也能做鼠标图案,不过要稍微麻烦点。(要过滤掉一些颜色做透明化处理)

这是我的一些看法,不知道有没有错,有不对的地方,请看这篇文章的朋友指出来,谢谢。

</td> </tr> <tr>


↑返回目录
前一篇: 模拟点击的程序
后一篇: 代码复用的规则