《java图像分割方法集合.doc》由会员分享,可在线阅读,更多相关《java图像分割方法集合.doc(11页珍藏版)》请在金锄头文库上搜索。
1、import java.awt.*;import javax.swing.*;class ImageTest extends JFrame public ImageTest() setSize(300,300); setVisible(true); public Image splitImage(String file, int rows, int cols) System.out.println(Test);Image t=new ImageIcon(file).getImage(); Image result = new Imagerows * cols; int w = t.getWid
2、th(this)/cols; int h = t.getHeight(this)/rows; try for(int i = 0;iresult.length;i+) resulti = this.createImage(w,h); Graphics g = resulti.getGraphics(); g.translate(-i%cols)*w,(-i/cols)*h); g.drawImage(t,0,0,this); System.out.println(Test); catch(Exception e) return result; class Test extends JFrame
3、 public Test() setSize(300,300); setVisible(true); public void paint(Graphics g) ImageTest tt = new ImageTest(); Image image = tt.splitImage(1.gif,5,5); g.drawImage(image0,0,0,this); public static void main(String args) new Test(); 将一个大图像分割成几个小图像的代码/分割图像的方法。 import javax.swing.*; import java.awt.*;
4、import java.awt.image.*;import .URL; import java.io.File;import java.util.Hashtable; public class ChenWin504 extends JApplet Image im; MediaTracker me; Image imag; public static Hashtable cache; public void init() URL ur=ChenWin504.class.getResource(images/ima); imag=new Image10; System.out.println(
5、ur); im=getToolkit().getImage(images/ima/jumptojavastrip.png); me=new MediaTracker(this); me.addImage(im,0); try me.waitForID(0); catch(Exception e) DemoImages(); for(int i=0;i10;i+) imagi=(Image)cache.get(jumptojavastrip-+i+.png); if(imagi=null) System.out.println(null); public void paint(Graphics
6、g) int x=5; int y=100; g.drawImage(im,5,0,null); for(int i=0;i300) x=5;y+=100; public void DemoImages() URL url = ChenWin504.class.getResource(images/ima); File dir = new File(url.getFile(); if (dir != null & dir.isDirectory() String list = dir.list(); System.out.println(list.length); cache = new Ha
7、shtable(list.length); for (int i = 0; i list.length; i+) cache.put(listi, createImage(listi, this); if (cache.containsKey(jumptojavastrip.png) Image img = (Image) cache.get(jumptojavastrip.png); for (int i=0, x=0; i 10; i+, x+=80) String s = jumptojavastrip- + String.valueOf(i) + .png; cache.put(s,
8、getCroppedImage(img, x, 0, 80, 80, this); public static Image createImage(String fileName, Component cmp) URL url = ChenWin504.class.getResource(images/ima/ + fileName); Image img = cmp.getToolkit().createImage(url); trackImage(img, cmp); return img; /分割图像的方法。 public static Image getCroppedImage(Ima
9、ge img, int x, int y, int w, int h, Component cmp) ImageProducer imgP = img.getSource(); CropImageFilter cif = new CropImageFilter(x, y, w, h); ImageProducer ip = new FilteredImageSource(imgP, cif); Image croppedimage = cmp.getToolkit().createImage(ip); trackImage(croppedimage, cmp); return croppedi
10、mage; private static void trackImage(Image img, Component cmp) MediaTracker tracker = new MediaTracker(cmp); tracker.addImage(img, 0); try tracker.waitForID(0); catch (Exception ex) ex.printStackTrace(); 效果图:java 图片切割,缩放,转换类型等等 import java.io.*;import java.awt.*;import java.awt.image.*;import java.a
11、wt.Graphics;import java.awt.color.ColorSpace;import javax.imageio.ImageIO;public class ImageCut /* * 缩放图像 * param srcImageFile源图像文件地址 * param result缩放后的图像地址 * param scale缩放比例 * param flag缩放选择:true 放大; false 缩小; */ public static void scale(String srcImageFile, String result, int scale, boolean flag)
12、try BufferedImage src = ImageIO.read(new File(srcImageFile); / 读入文件 int width = src.getWidth(); / 得到源图宽 int height = src.getHeight(); / 得到源图长 if (flag) / 放大 width = width * scale; height = height * scale; else / 缩小 width = width / scale; height = height / scale; Image image = src.getScaledInstance(width, height, Image.SCALE_DEFAULT); BufferedImage tag = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB); Graphics g = tag.getGraphics(); g.drawImage(image, 0, 0, null); / 绘制缩小后的图 g.dispose(); ImageIO.write(tag, JPEG, new File(result);/ 输出到文件流 catch (IOException e) e.p