Java小項目之:拼圖游戲!


Java小項目之:拼圖游戲!

今天教大家用java做出一個拼圖游戲,很適合java初學者練手。

所用素材:

 

部分代碼:

 

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 + "\t\theight:" + height);

System.err.println("切割的行數=[" + rows + "]\n切割的列數=[" + 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();

}

}

 

}

篇幅有限,展示不了所有代碼,需要素材和源碼的可以私信我領取!

喜歡這樣文章的可以關注我,我會持續更新更多小項目。你們的關注是我更新的動力!

祝關注我的人都:身體健康,財源廣進,福如東海,壽比南山,早生貴子,從不掉發!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM