Java 图片切割

将图片横切或者竖切为两张

	public void carveImage(String dir, File file, String orient, int width, int height) {
		ImageFilter cropFilter;
		Image img;
		try {
			// 读取源图像
			BufferedImage bi = ImageIO.read(file);
			int srcWidth = bi.getWidth(); // 源图宽度
			int srcHeight = bi.getHeight(); // 源图高度

			int destWidth, destHeight;
			int j = 1, k = 1;
			// 判断
			if ("2".equals(orient)) {// 竖切
				destWidth = srcWidth / 2;
				destHeight = srcHeight;
				k = 0;
			} else if ("1".equals(orient)) {// 横切
				destWidth = srcWidth;
				destHeight = srcHeight / 2;
				j = 0;
			} else {
				return;
			}
			String fileName;
			String filePath;
			if (srcWidth >= destWidth && srcHeight >= destHeight) {
				Image image = bi.getScaledInstance(srcWidth, srcHeight, Image.SCALE_DEFAULT);
				for (int i = 0; i < 2; i++) {
					fileName = System.currentTimeMillis() + ".jpg";
					filePath = dir + "/" + fileName;
					cropFilter = new CropImageFilter(i * destWidth * j, i * destHeight * k, destWidth, destHeight);
					img = Toolkit.getDefaultToolkit().createImage(new FilteredImageSource(image.getSource(), cropFilter));
					BufferedImage tag = new BufferedImage(destWidth, destHeight, BufferedImage.TYPE_INT_RGB);
					Graphics g = tag.getGraphics();
					new CropThread(g, img).start();
					ImageIO.write(tag, "JPEG", new File(filePath));
				}
			}
		} catch (Exception e) {
			e.printStackTrace();
			throw new RuntimeException(e);
		}
	}
class CropThread extends Thread {
	Graphics g = null;
	Image img = null;

	public CropThread(Graphics g, Image img) {
		this.g = g;
		this.img = img;
	}

	public void run() {
		g.drawImage(img, 0, 0, null); // 绘制缩小后的图
		g.dispose();
	}
}
时间: 2024-08-02 16:48:59

Java 图片切割的相关文章

可以利用java代码实现图片切割再重组么?

问题描述 可以利用java代码实现图片切割再重组么? 可以利用java代码实现图片切割再重组么?如何实现?求案例讲解或者思路! 解决方案 图片存储 java代码 解决方案二: 不知道JAVA有没有提供相关的类 有一种方法肯定可以,使用图片文件结构,自己编码图片 解决方案三: 图片文件分为头+数据,将文件分为头+数据1,头+数据2,头+数据3...等,之后重组为完整数据

JavaScript 图片切割效果

很久之前就在一个网站的截取相片的功能中看到这个效果,也叫图片裁剪.图片剪切(设置一下也可以做出放大镜等类似的效果). 当时觉得很神奇,碍于水平有限,没做出来. 前些日子突然想做一个透镜效果,就突然想到了这个效果,于是找出当年"珍藏"的代码决定一尝所愿. 序二(08/12/06) 自上一个版本的图片切割效果出来后,虽然也经常看到"框架开发这个如何如何容易"之类的评论,但也受到很多人的肯定,小弟在此感谢大家的支持. 上一个版本由于是初次接触这类效果,而且是三个大功能一起

Android中将一个图片切割成多个图片的实现方法_Android

以下是封装好的两个类,可以实现图片的切割.仅供参考和学习. 一个是ImagePiece类,此类保存了一个Bitmap对象和一个标识图片的顺序索引的int变量. 复制代码 代码如下: package arui319.blog.csdn.net;  import android.graphics.Bitmap;  public class ImagePiece {      public int index = 0;      public Bitmap bitmap = null;  }  一个是

Android中将一个图片切割成多个图片的实现方法

以下是封装好的两个类,可以实现图片的切割.仅供参考和学习. 一个是ImagePiece类,此类保存了一个Bitmap对象和一个标识图片的顺序索引的int变量.复制代码 代码如下:package arui319.blog.csdn.net; import android.graphics.Bitmap; public class ImagePiece { public int index = 0; public Bitmap bitmap = null;  } 一个是ImageSplitter类,

宽高自适应的九宫格背景图片切割分析

在原来的宽高自适应的九宫格基础上做了一些优化,把八个背景图请求改为一个,以降低网络成本.其实这也只是一些简单的小技巧,在切图方面会比较严紧有1px的不对称就会出问题,请留意下面例子的切割分析. RAR:module.zip 制作说明: 图片切割分析 重点在于使用局部透明的背景图,以及为每个自适应延伸的XHTML部分多添加一个<SPAN>标签读取背景,以错位的形式补上左右或上下的延伸背景.为解决IE未能高度100%问题,左右延伸高度写了3000px绝对值单位(根据需求调整). 缺点: 背景图片必

Java 图片压缩实现思路及代码

本文为大家详细介绍下图片压缩的具体实现思路及java代码,想学习的各位可以参考下哈,希望对大家有所帮助   Java图片压缩代码 复制代码 代码如下: package com.img; import java.awt.Image; import java.awt.image.BufferedImage; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import javax.im

javascript实现的图片切割多块效果实例

  这篇文章主要介绍了javascript实现的图片切割多块效果,涉及javascript操作图片及css样式的技巧,需要的朋友可以参考下 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 6

javascript实现的图片切割多块效果实例_基础知识

本文实例讲述了javascript实现的图片切割多块效果.分享给大家供大家参考.具体实现方法如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang=&quo

mage-怎么用java图片加文字水印ne

问题描述 怎么用java图片加文字水印ne 要一个完整的例子,传入的参数最好是 源文件 byte[] 文字内容 返回的是加水印之后的 byte[] 最好有注释,谢谢了 Exception in thread "main" sun.misc.ServiceConfigurationError: javax.imageio.spi.ImageReaderSpi: Provider it.geosolutions.imageio.stream.input.spi.FileImageInput