📄 cutimage.java
字号:
import java.awt.Image;
import java.awt.MediaTracker;
import java.awt.Toolkit;
import java.awt.image.CropImageFilter;
import java.awt.image.FilteredImageSource;
import java.awt.image.ImageProducer;
import java.net.MalformedURLException;
import java.net.URL;
import javax.swing.JFrame;
public class CutImage extends JFrame
{
private Image mainImage;
private Image[] wolfImage;
private Image[] ballImage;
private Image[] pigImage;
private MediaTracker mt = new MediaTracker(this);
public CutImage()
{
mainImage = Toolkit.getDefaultToolkit().getImage(this.getImageURL("background.jpg"));
wolfImage = this.loadImageStrip(this.getImageURL("wolf.gif"), 14, 125, 125, 0);
ballImage = this.loadImageStrip(this.getImageURL("ball.gif"), 5, 116, 92, 0);
for(int i=0; i < ballImage.length;i++)
{
mt.addImage(ballImage[i], 0);
}
for(int i=0; i < wolfImage.length;i++)
{
mt.addImage(wolfImage[i], 0);
}
mt.addImage(mainImage, 0);
try {
mt.waitForAll();
} catch (InterruptedException e) {
// TODO 自动生成 catch 块
e.printStackTrace();
}
}
public Image getMainImage()
{
return mainImage;
}
public Image[] getWolfImage()
{
return wolfImage;
}
public Image[] getBallImage()
{
return ballImage;
}
public URL getImageURL(String imgName)
{
String imageURLStr = CutImage.class.getResource("/").toString();
imageURLStr = imageURLStr.substring(0, imageURLStr.length() - 4) + "img/" + imgName;
URL imageURL = null;
try {
imageURL = new URL(imageURLStr);
} catch (MalformedURLException e) {
// TODO 自动生成 catch 块
e.printStackTrace();
}
System.out.println(imageURLStr);
return imageURL;
}
/**分割图片*/
public Image[] loadImageStrip(URL fileURL, int numImages, int cellWidth, int cellHeight, int cellBorder) {
Image img = Toolkit.getDefaultToolkit().getImage(fileURL);
mt.addImage(img, 0);
try {
mt.waitForAll();
} catch (InterruptedException e) {
e.printStackTrace();
}
int colums = img.getWidth(null)/cellWidth;
Image[] imges = new Image[numImages];
ImageProducer iP = img.getSource();
for(int i=0;i<numImages;i++){
int tempX=(i%colums)*cellWidth+cellBorder;
int tempY=(i/colums)*cellHeight+cellBorder;
int width=cellWidth-2*cellBorder;
int height=cellHeight-2*cellBorder;
imges[i]=this.loadCell(iP, tempX, tempY, width, height);
}
return imges;
}
/**为原图像的新过滤版本产生图像数据*/
public Image loadCell(ImageProducer ip,int x,int y,int width,int height){
CropImageFilter cf = new CropImageFilter(x,y,width,height);
FilteredImageSource fis = new FilteredImageSource(ip,cf);
return createImage(fis);
}
// public static void main(String[] args)
// {
// new CutImage().getImageURL("background.jpg");
// }
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -