今天教大家用java做出一个拼图游戏,很适合java初学者练手。
所用素材:
![3770fa782e9db0b59b852e91323fd2ce.png](https://i-blog.csdnimg.cn/blog_migrate/a82f5e0742e241bd8c539c7af675a78a.jpeg)
部分代码:
![03e4a5e955c1ee19f84be5d5d789dcff.png](https://i-blog.csdnimg.cn/blog_migrate/f61f8d01576cf473fa190061de80daa8.jpeg)
![a0b6b1d0b143455505d20f3ba134f65c.png](https://i-blog.csdnimg.cn/blog_migrate/6ca41562029b518efefdae1fa6105caf.jpeg)
package picture_mosical;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.Toolkit;
import java.awt.image.BufferedImage;
import java.awt.image.CropImageFilter;
import java.awt.image.FilteredImageSource;
import java.awt.image.ImageFilter;
import java.io.File;
import javax.imageio.ImageIO;
public class PictureCut {
private static int width;// 切割后图片的宽度
private static int height;// 切割后图片的高度
private static String dir_name = "/CutImage";// 存放图片的文件夹名称
public static void cut(String paths, int rows, int cols, String dir)
throws Exception {
Image img;
ImageFilter new_if;//fasf你的
BufferedImage bi = ImageIO.read(new File(paths));// 读取图像源
if (bi == null) {
System.out.println("图像源为空");
return;
}
int baseWidth = bi.getWidth();// 读取图像源的宽度
int baseHeight = bi.getHeight();// 读取图像源的高度
width = baseWidth / cols;// 切割后图片的宽
height = baseHeight / rows;// 切割后图片的高
System.out.println("width:" + width + "height:" + height);
System.err.println("切割的行数=[" + rows + "]切割的列数=[" + cols + "]");
Image image = bi.getScaledInstance(baseWidth, baseHeight,
Image.SCALE_DEFAULT);
BufferedImage bimg;
File file;
int x = 0, y = 0;
int index = 0;
// 开始对图像源进行切割
long s = Math.round(Math.random() * 8);
System.out.println(s + ">>>>>>>>>>>>>>>");
boolean flag = true;
for (int i = 0; i < rows; i++) {
y = (int) (i * height);
for (int j = 0; j < cols; j++) {
if (index == 8) {
index=9;
new_if = new CropImageFilter(0, 0, baseWidth, baseHeight);
width=baseWidth;
height=baseHeight;
}else{
x = (int) (j * width);
new_if = new CropImageFilter(x, y, width, height);
}
img = Toolkit.getDefaultToolkit().createImage(
new FilteredImageSource(image.getSource(), new_if));
bimg = new BufferedImage(width, height,
BufferedImage.TYPE_INT_RGB);
Graphics gi = bimg.getGraphics();
gi.drawImage(img, 0, 0, null);
gi.dispose();
file = new File(dir + index + ".jpg");
ImageIO.write(bimg, "JPEG", file);
index++;
}
}
}
public static void main(String[] args) {
try {
PictureCut.cut("src/picture_mosical/123.jpg", 3, 3,
"WebRoot/images/");
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
篇幅有限,展示不了所有代码,需要素材和源码的可以私信我领取!
喜欢这样文章的可以关注我,我会持续更新更多小项目。你们的关注是我更新的动力!
祝关注我的人都:身体健康,财源广进,福如东海,寿比南山,早生贵子,从不掉发!
![806eafc28f5b138cf82fa1cc0853b2b7.png](https://i-blog.csdnimg.cn/blog_migrate/e837bead0b4b10d8004be803e177157a.jpeg)
![7a8b0aba92dd3563e505417f9c070b5c.png](https://i-blog.csdnimg.cn/blog_migrate/1c3d579d9e6da87af5a5c1c593adad96.jpeg)