用java做拼图游戏,怎么把图片切割成不规则形状?

我是计算机专业的学生,毕业设计是网络拼图游戏,我用MyEclipse做,网上找到类似的基本都是用flash做的。给出一张完整的图片,怎么用程序把他做成拼图块那样的形状,还... 我是计算机专业的学生,毕业设计是网络拼图游戏,我用MyEclipse做,网上找到类似的基本都是用flash做的。
给出一张完整的图片,怎么用程序把他做成拼图块那样的形状,还要实现拖动功能。
用draw来画不知道可不可以做出这样的形状,但要画出来也很麻烦,而且就算画出来拖动也不好实现,用getSubImage只能切割出方块形状的。
有没有什么方法可以用java把图片切割成如图形状?
图片资料来自http://www.puzzle8.com/
可加qq790054569。
展开
 我来答
guzhuogz
2010-01-23 · TA获得超过194个赞
知道答主
回答量:187
采纳率:0%
帮助的人:87万
展开全部
以我现在的知识,我还不知道如何更简单的去做。
但如果以实现方式来讲,
一种是人工将图片这种形状

一种是 非常麻烦,需要程序进行大量计算。要对图片转换成 int 数值 有所了解
我想我只能提供你思路,因为具体实现是比较麻烦的
因为我不是讲语文的,不知道能不能说明白,比较意识流。。。

人工将图片的几种形状画出一种以指定颜色背景的半透明的图,,
比如方案为
■■■■□□■■■■□□■■■■
■■■□□■■■■■■□□■■■
■■■■□□■■■■□□■■■■
■■■□□■■■■■■□□■■■
■■□■□□■□□■□□■□■■
□□□□□□□□□□□□□□□□
□□■□□□□■■□□□□■□□
■■■■□□■■■■□□■■■■
■■■□□■■■■■■□□■■■
■■■■□□■■■■□□■■■■
■■■■□□■■■■□□■■■■

我想我画的试例图你明白了吧,是可以进行对接拼图的

一个比如说红色图片 4*4大小的,那么他转成int数据时就是
0xffff0000 0xffff0000 0xffff0000 0xffff0000
0xffff0000 0xffff0000 0xffff0000 0xffff0000
0xffff0000 0xffff0000 0xffff0000 0xffff0000
0xffff0000 0xffff0000 0xffff0000 0xffff0000
0x后面的ff表示是不透明的
第二个ff及后面的4个0表示图片颜色前2位是红中间是绿最后是蓝 这一点你可以用photoshop去查看
比如我上面第一张图的数据,转成int 数据时,就应该是

A B C D
1 0xffff0000 0xffff0000 0xffff0000 0xffff0000
2 0xffff0000 0xffff0000 0xffff0000 0x00ffffff
3 0xffff0000 0xffff0000 0xffff0000 0xffff0000
4 0xffff0000 0xffff0000 0xffff0000 0x00ffffff
5 0xffff0000 0xffff0000 0x00ffffff 0xffff0000

其中 D2 D4 及C5的位置是透明的0x00表示透明
说到这,也就是说,你应该能通过你生成的那几个指定的图片获得这几个图片对应的数据模板
之后你将你的要拼图的图片,按你设计好的模板拼图方式,生成图片块 注意,因为你要的效果是两个图片对接的,所以在生成的时候,也要注意,是对接的

如果你做到这一步,(或说成,你能想明白到这一步,哪怕不知道怎么做,没关系)

你这时应该能得到每块图片,和每块图片对应的是哪种模板
将这块图片转成int 数组形式的 数据文件。
之后将这个数据文件与对应的模板数据文件进行对应,
当发现你的模板的数据值为0x00ffffff时,就说明这个位置的颜色应该是透明的,这时因为你的图片数据与模版数据ID是相对应的,直接找到图片数据ID,将他的值改为0x00ffffff就可以了。

到这一步,你应该可以实现将所有分割后的图片,在数据上转换成了你想要的样子。
这时,你只要通过一些函数将数据文件转换成图片格式就行了。

因为我做的是手机方面的,你用的可能是J2SE吧,API我不是很熟,不能提供具体的方法。
游离种子
2010-01-22 · TA获得超过1333个赞
知道小有建树答主
回答量:657
采纳率:0%
帮助的人:438万
展开全部
如果用图片的话是不是一个小图片一个按钮啊?我没做过这种东西,也不是很清楚,如果切图的话就得找美工了。

java做贪吃蛇啦,俄罗斯方块啦也行啊-

以前我们用java做过windows画图板,不是很容易,后来做了一半就停了-
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
chzuqi
2010-01-31 · 超过45用户采纳过TA的回答
知道小有建树答主
回答量:117
采纳率:0%
帮助的人:115万
展开全部
这个非常麻烦要自己用曲线画弧度,计算好围成拼图形状,然后填充,再设为遮罩...过程是这样,详细的自己去算吧。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
飞de屋
2010-01-23 · TA获得超过379个赞
知道小有建树答主
回答量:193
采纳率:0%
帮助的人:171万
展开全部
不能事先在PS或者CDR里先做好,再导入到JAVA里吗?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式