请问java怎样实现拼图游戏图片的载入,就是图片怎么分割成一小张一小张的,请详讲 。谢谢,最好有代码public static void cut(String srcImageFile, String descDir, int destWidth,
int destHeight) {
try {
Image img;
ImageFilter cropFilter;
// 读取源图像
BufferedImage bi = ImageIO.read(new File(srcImageFile));
int srcWidth = bi.getHeight(); // 源图宽度
int srcHeight = bi.getWidth(); // 源图高度
if (srcWidthdestWidthsrcHeightdestHeight) {
Image image = bi.getScaledInstance(srcWidth, srcHeight,
Image.SCALE_DEFAULT);
destWidth = 200; // 切片宽度
destHeight = 150; // 切片高度
int cols = 0; // 切片横向数量
int rows = 0; // 切片纵向数量
// 计算切片的横向和纵向数量
if (srcWidth % destWidth == 0) {
cols = srcWidth / destWidth;
} else {
cols = (int) Math.floor(srcWidth / destWidth) + 1;
}
if (srcHeight % destHeight == 0) {
rows = srcHeight / destHeight;
} else {
rows = (int) Math.floor(srcHeight / destHeight) + 1;
}
// 循环建立切片
// 改进的想法:是否可用多线程加快切割速度
for (int i = 0; irows; i++) {
for (int j = 0; jcols; j++) {
// 四个参数分别为图像起点坐标和宽高
// 即: CropImageFilter(int x,int y,int width,int height)
cropFilter = new CropImageFilter(j * 200, i * 150,
destWidth, destHeight);
img = Toolkit.getDefaultToolkit().createImage(
new FilteredImageSource(image.getSource(),
cropFilter));
BufferedImage tag = new BufferedImage(destWidth,
destHeight, BufferedImage.TYPE_INT_RGB);
Graphics g = tag.getGraphics();
g.drawImage(img, 0, 0, null); // 绘制缩小后的图
g.dispose();
// 输出为文件
ImageIO.write(tag, "JPEG", new File(descDir
+ "pre_map_" + i + "_" + j + ".jpg"));
}
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
急求用JAVA编写的图形化界面拼图小游戏代码!【拼图分离图片java代码 拼图分离图片java代码是什么】个人见解拼图分离图片java代码,总体需要两个二维数组(一个存储正确图片排列 Array1 String[][],一个随机生成图片排列Array2 String[][]),一个一维数组来存储图片拼图分离图片java代码的名称Array3 String[],。
(1)如何实现图片移动
使用带图片拼图分离图片java代码的按钮(button =new button(getImage(Array[2][4]))),然后通过单击事件来更改按钮的图片来源 。把被点击的按钮的图片路径更新到空白按钮,并且把被点击的按钮图片更新的成空白 。其实就是变换两个的二维数组成员的值 。更新Array2中的值,然后重绘按钮
如 Array[2][3]=“3.image”
Array[2][4]=“”
图片3.image右移
Array[2][3]=“”
Array[2][4]=“3.image”
(2)如何判断被单击的网格与空白的网格是否相邻
后台使用一个二维数组Array2来做映射 。通过二维数组的下标来判断,如Array[2][3]可以知道Array[2][4]是它右边的那个 。
(3)如何实现图片的随机摆放
比如有9个图片,你可以命名1-9,然后初始化一个长度为9的一维String 数组Array3来存储图片的名称 ,
使用随机函数给二维数组Array2赋值,如Array2[2][3]=Array3[random()],这里要判断这个图片是否已被使用过,可以通过遍历Array2来确定当前Array3这个值是否已经在Array2中拼图分离图片java代码了
最后通过Array1 和Array2来比较,用户的拼图是否正确 。
语言组织能力有限 。讲不太清楚 。
我在做JAVA拼图游戏,但是不知道怎么把一张大图片分解成很多小张的!还有怎么做拼图成功的处理?。?/h2>可以在内存中拆分图像,使用BufferedImage类的getSubimage()方法,如下:
推荐阅读
- html5延迟加载,html页面延迟加载
- net35离线安装包2012,net35离线安装包安装方法
- oracle怎么用网页链接数据库,oracle如何链接sqlserver
- 直播主播应聘,直播主播应聘要求
- 手机整人代码java 手机整人代码大全可复制
- js判断元素是否存在6,js判断元素是否存在6个字符
- 更新鸿蒙系统打王者动不了,鸿蒙玩不了王者
- 2016国产单机游戏,2021国产单机游戏大作
- 混淆函数python python 混淆