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日