资源预览内容
第1页 / 共11页
第2页 / 共11页
第3页 / 共11页
第4页 / 共11页
第5页 / 共11页
第6页 / 共11页
第7页 / 共11页
第8页 / 共11页
第9页 / 共11页
第10页 / 共11页
亲,该文档总共11页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
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.getWidth(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 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.*; import java.awt.image.*;import java.net.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(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 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 Hashtable(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, 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(Image 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 croppedimage; 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.awt.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) 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
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号