首页>代码>java swing开发GUI射击小游戏一枚>/NewGame/src/com/leng/Util/CutImage.java
package com.leng.Util;

import java.awt.Image;
import java.awt.MediaTracker;
import java.awt.image.CropImageFilter;
import java.awt.image.FilteredImageSource;
import java.awt.image.ImageProducer;

import javax.swing.ImageIcon;
import javax.swing.JFrame;
/**
 * 图像切割类
 * @author 冷若寒风逝、此戏已散场、
 * 2013-8-26
 */

public class CutImage {

	/**
	 *  切割多行图片
	 * 
	 * @param filePath            原始图片路径
	 * @param row	               图片切割行数
	 * @param col                 图片切割列数
	 * @param track               媒体追踪器
	 * @param groupId 			   分组ID
	 * @return Image[][]          切割完成后的图像数组
	 */
	public static  Image[][] cutManyImage(String filePath, int row, int col,MediaTracker track,int groupId) {
		
		Image[][] img = new Image[row][col];

		ImageIcon imIcon = new ImageIcon(filePath);// 创建图像数组对象

		Image imgTemp = imIcon.getImage();// 创建源图像
		
		int imageWidth = imgTemp.getWidth(null)/col;
		int imageHight = imgTemp.getHeight(null)/row;
		
		// 为源 图象获取ImageProducer源
		ImageProducer sourceProducer = imgTemp.getSource();

		for (int i = 0; i < row; i++) {
			for (int j = 0; j < col; j++) {
				// 创建图片分割图像对象,第一、二个参数为分割图像起始坐标。后两个参数为图像大小
				CropImageFilter cropImg = new CropImageFilter(j * imageWidth, i * imageHight,imageWidth, imageHight);

				/* 获得图像生成器 */
				ImageProducer imgProducer = new FilteredImageSource(sourceProducer, cropImg);

				/* 获图像对象 */
				img[i][j] = new JFrame().createImage(imgProducer);
				track.addImage(img[i][j], groupId);
			}
		}

		return img;
	}
	
	/**
	 * 切割单行图片
	 * @param filePath 文件路径
	 * @param col 列数
	 * @param track 媒体追踪器
	 * @param groupId 分组ID
	 * @return 切割完成后的图像数组
	 */
	public static  Image[] cutOneImage(String filePath,int col,MediaTracker track,int groupId) {
		
		Image[] img = new Image[col];

		ImageIcon imIcon = new ImageIcon(filePath);// 创建图像数组对象

		Image imgTemp = imIcon.getImage();// 创建源图像
		int imageWidth = imgTemp.getWidth(null)/col;
		int imageHight = imgTemp.getHeight(null);
		// 为源 图象获取ImageProducer源
		ImageProducer sourceProducer = imgTemp.getSource();


			for (int j = 0; j < col; j++) {
				// 创建图片分割图像对象,第一、二个参数为分割图像起始坐标。后两个参数为图像大小
				CropImageFilter cropImg = new CropImageFilter(j * imageWidth, 0,imageWidth, imageHight);

				/* 获得图像生成器 */
				ImageProducer imgProducer = new FilteredImageSource(sourceProducer, cropImg);

				/* 获图像对象 */
				img[j] = new JFrame().createImage(imgProducer);
				track.addImage(img[j], groupId);
			}


		return img;
	}
	/**
	 * 得到单个图像
	 * @param filePath 文件路径
	 * @param track 媒体追踪器
	 * @param groupId 分组ID
	 * @return 图像对象
	 */
	public static  Image getSingleImage(String filePath,MediaTracker track,int groupId){
		Image img = new ImageIcon(filePath).getImage();
		track.addImage(img, groupId);
		
		return img;
	}
}
最近下载更多
wzy5432  LV1 2023年4月18日
huangzy  LV12 2023年4月6日
总有人间一两风  LV8 2022年12月12日
一头土猪  LV7 2021年12月22日
zhanghe001  LV9 2021年12月18日
选了了  LV7 2021年12月13日
my1999  LV2 2021年11月27日
tangjj7260  LV18 2021年11月20日
pipichao  LV6 2021年6月20日
ldx1234  LV4 2021年5月17日
最近浏览更多
interface  LV22 8月10日
wppppp  LV3 6月4日
bangyiyang  LV2 2023年12月21日
wsgwly  LV6 2023年9月11日
1441854423  LV2 2023年6月30日
1614076596  LV1 2023年5月22日
flygrass  LV12 2023年4月24日
wzy5432  LV1 2023年4月18日
huangzy  LV12 2023年4月6日
xingxing1234  LV10 2023年3月22日
顶部 客服 微信二维码 底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友