九点Java_Java点九图片解析 NinePatch

软件介绍

关于JavaSE NinePatch

JavaSE NinePatch是一款针对Swing和JavaFX对点九图片解析的一种实现方式

关于点九

点九图又称九图,是一种png格式的图片,其后缀为.9.png,其与传统png图片不同的地方是,点九图的四周边缘各有1个像素宽高的区域,而且只能填两种颜色,透明(#00000000)和黑色(#FF000000),其目的是用于对该图片的扩展区域和内容显示区域进行定义。

使用点九PNG技术,可以将图片横向和纵向同时进行拉伸,并能保持图片细节,不会因为图片拉伸而模糊失真。

原理

如下图所示,这是一张点九图,左侧和上侧作为扩展区域,右侧和下侧则是控制内容显示的区域。当需要上下拉伸的时候,就从左侧和上侧的黑色区域非重合垂直部分开始复制拉伸;当需要左右拉伸的时候,就从上侧和左侧的黑色区域非重合水平部分开始拉伸。当想要在显示文字时,控制其与上下或左右边缘的距离,可以设置右侧或下侧的黑色区域,右侧的黑色区域控制内容上下位置,下侧控制内容的左右位置。

e0ae8b714242bf014b4cce13b5ef8414.png

JavaFX使用示例

Canvas canvas = new Canvas(480, 360);

GraphicsContext gc = canvas.getGraphicsContext2D();

Image img = new Image(getClass().getResource("/icon_qipao.9.png").toExternalForm());

FxNinePatch np = new FxNinePatch(img);

np.drawNinePatch(gc, 28, 28, 400, 100);

运行效果

faccb1ab1512b696aa724bcdc4e4ffe4.png

为你推荐:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值