求助!JAVA图像 对头发染色

cwhqt 2009-11-11 07:58:10
现在想做一个小游戏
想实现选择颜色来改变原来发型的颜色

就像UO(网络创世纪 不知道大家有没有玩过)里面一样,
现在好多游戏也都可以选择发型和发色,我认为他们都是一个图片,
然后通过程序来进行染色的。
...全文
270 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
smallbear923 2009-11-13
  • 打赏
  • 举报
回复
好复杂,帮顶~
安小寰 2009-11-13
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 cwhqt 的回复:]
不用说监听啊 这块我明白
我想知道的是 图片是PNG格式的 程序读进来是BUUFERIMAGE
然后我就想通过一些算法将图片染色(比如染成黑色或红色)用graphics画上去
我想知道的就是这个算法  大家不要再扯监听了。。。。
[/Quote]
这个算法需要用到的是区域算法,挺复杂的。
1.首先,你要判定发型的区域,计算发型区域边缘各个点。(这点网上搜区域算法,好像涉及矩阵)
2.根据上述获得的复杂多边形区域的矩阵表示进行graphics的填充。
大概就是这么个路子,具体算法有很长的文章介绍的,这不说了。
安小寰 2009-11-13
  • 打赏
  • 举报
回复
楼主我觉得你要这样的处理的话还是直接IMG贴好,要是用ImageObserve实现“染色”效果的话肯定还得在imageUpdate获取头发的区域轮廓然后根据轮廓计算复杂图形进行色彩填充,这样用到graphics还有区域算法。
这里我还是推荐楼主用一个二维数组或者HashMap和List存放发型和发色,比方说二维数组横向是同一发色不同发型,纵向是同一发型不同发色。或者HashMap中以发型为key,以一个ArrayList存放发色。变哪个就掉那个方便多了。
cwhqt 2009-11-13
  • 打赏
  • 举报
回复
不用说监听啊 这块我明白
我想知道的是 图片是PNG格式的 程序读进来是BUUFERIMAGE
然后我就想通过一些算法将图片染色(比如染成黑色或红色)用graphics画上去
我想知道的就是这个算法 大家不要再扯监听了。。。。
nh1011 2009-11-13
  • 打赏
  • 举报
回复
监听是必须得,通过事件触发更改图片或setcolor改变。看你原来的图片是IMG还是graphics画出来的。
hui94781674 2009-11-13
  • 打赏
  • 举报
回复
闭合的染色应该不难···从某一个色素点出发一真向外染色,碰到闭合区域停止染色
cwhqt 2009-11-12
  • 打赏
  • 举报
回复
谢谢楼上的 但没解决我的问题
我想要的就是怎么通过ImageObserve来实现对灰色的发型图片颜色的改变
跟监听什么没关系

有熟悉DELPHI的没 有人用DELPHI写出来了 但我不会DELPHI

程序:http://uo.stratics.com/heptazane/characterviewer/uocview.zip
源码:http://uo.stratics.com/heptazane/characterviewer/uoccode.zip
程序需要UO的客户端
客户端:http://zjuo.chinauo.com/Ultima%20Online.rar
安小寰 2009-11-12
  • 打赏
  • 举报
回复
这样的实现不是通过“染色”来实现的,一般的代码实现都是准备了很多发色发型的Image图片,然后通过你的选择(鼠标点击监听/按钮监听)来查找对应的Image然后改变主窗体中人物的发型发色。
如果真想实现“染色”的功能的话楼主可以参考下Graphics类,里面提供了图形重绘的方法,你提出的要求只要监听你所选择的颜色然后使用重绘线程改变重绘线程中Color的颜色就可以了.
编程黑板报 2009-11-12
  • 打赏
  • 举报
回复
不知道
cwhqt 2009-11-12
  • 打赏
  • 举报
回复
楼上的大哥 我不是这个意思啊
我是要对发型染色啊 不是换发型。。。。
dajiadebeibei9 2009-11-12
  • 打赏
  • 举报
回复
那就触发鼠标点击事件 点击的时候将准备好的发型图片覆盖当前发型图片 将发型图片初始化成一个集合数组,点一次就换一个图片 这样就方便了
scottxp 2009-11-12
  • 打赏
  • 举报
回复
封闭图形的染色是很基本的算法

随便找一本图形学的书都有
cwhqt 2009-11-12
  • 打赏
  • 举报
回复
楼上什么意思?我就是想对一个图片先经过染色画上去啊
scottxp 2009-11-12
  • 打赏
  • 举报
回复
“染色”是实时的,你这个就是贴图而已
dm520 2009-11-12
  • 打赏
  • 举报
回复
不会delphi
cwhqt 2009-11-11
  • 打赏
  • 举报
回复
没人吗?自己顶

62,621

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧