package com.dcsm.business.util;
import java.awt.Rectangle;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.util.Iterator;
import javax.imageio.ImageIO;
import javax.imageio.ImageReadParam;
import javax.imageio.ImageReader;
import javax.imageio.stream.ImageInputStream;
import javax.imageio.stream.ImageOutputStream;
public class ImageTools {
/**
* 图片截取
*
* @param file
* @param newName
* @param path
* @param x
* @param y
* @param width
* @param height
* @return author:caobo date:Oct 14, 2009 12:38:05 PM
*/
public static File cutting(File file, String newName, String path, int x,
int y, int width, int height) {
ImageOutputStream out = null;
InputStream is = null;
ImageInputStream iis = null;
try {
String endName = file.getName();
endName = endName.substring(endName.lastIndexOf(".") + 1);
Iterator<ImageReader> readers = ImageIO
.getImageReadersByFormatName(endName);
ImageReader reader = (ImageReader) readers.next();
is = new FileInputStream(file);
iis = ImageIO.createImageInputStream(is);
reader.setInput(iis, true);
ImageReadParam param = reader.getDefaultReadParam();
Rectangle rect = new Rectangle(x, y, width, height);
param.setSourceRegion(rect);
BufferedImage bi = reader.read(0, param);
File newFile = new File(path);
if (!newFile.exists())
newFile.mkdirs();
newFile = new File(path, newName);
out = ImageIO
.createImageOutputStream(new FileOutputStream(newFile));
ImageIO.write(bi, endName, out);
file = newFile;
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
iis.close();
is.close();
out.close();
} catch (Exception e) {
e.printStackTrace();
}
}
return file;
}
public static void main(String args[]) {
File file = new File("F:/logo.png");
cutting(file, "a.png", "f:/", 0, 0, 60, 50);
}
}
分享到:
相关推荐
在Java编程环境中,实现“拍照”和“截取图片”的功能涉及到多个技术层面,包括Web应用、设备访问、图像处理等。以下将详细介绍这些知识点: 1. **Java Web 应用**: Java Web应用程序是基于Java技术构建的,可以...
在Java编程中,处理图像数据并将其转换为16进制表示是一项常见的任务,尤其是在进行数据存储、加密或分析时。本示例中,我们关注的是如何读取一个.jpg格式的图片文件,并提取其最后部分的数据,将其转换为16进制字符...
在Java编程环境中,将视频定时截取图片并保存是一项常见的任务,这通常涉及到多媒体处理和图像操作。在本文中,我们将深入探讨如何实现这个功能,包括必要的库、关键步骤以及可能遇到的问题。 首先,我们需要一个...
java调用opencv利用霍夫圆定位查找印章,并返回质心坐标和半径以达到截取印章的目的
java 截取视频某一帧为封面所需jar(1.4.4),ffmpeg-4.1-1.4.4.jar,javacpp-1.4.4.jar,javacv-1.4.4.jar,opencv-4.0.1-1.4.4.jar
System.out.println("成功截取图片到 " + imagePath); } else { System.out.println("FFmpeg 命令执行失败,退出代码:" + exitCode); } } catch (IOException | InterruptedException e) { e.printStackTrace...
在Java编程环境中,截取视频画面是一项常见的任务,特别是在多媒体处理和内容分析的应用中。本教程将详细讲解如何利用Java调用DOS命令来实现这一功能,特别关注在Windows 7 64位操作系统下的实践。由于我们并未在...
该工具类用于java代码对图片的截取,按照上下左右边距的百分比截取,然后返回被截取之后图片信息的byte数组,用户可以将byte数组,用fileoutputStream保存在指定的目录
在Java编程语言中,处理图片是一项常见的任务,包括调整图片大小、等比例缩放、裁剪、压缩以及添加水印等。以下将详细介绍这些知识点: 1. **等比例缩放图片**: 在Java中,我们可以使用`java.awt.image....
利用java自动识别图片中的二维码并解析二维码中的数据利用java自动识别图片中的二维码并解析二维码中的数据利用java自动识别图片中的二维码并解析二维码中的数据利用java自动识别图片中的二维码并解析二维码中的数据...
在Java后台开发中,有时我们需要处理视频相关的任务,例如从视频中截取特定帧作为图片。这通常涉及到使用外部工具,比如FFmpeg,一个强大的开源跨平台多媒体处理库。本教程将详细介绍如何在Java环境中利用FFmpeg库...
截取图片时,需要指定视频文件路径和输出图片格式(如JPEG或PNG)。 2. **视频剪辑**:Java FFmpeg封装还提供了视频剪辑功能。通过指定开始时间和结束时间,可以裁剪出视频的任意部分。例如,`clipVideo()`方法可能...
Java 实现头像的截取,并上传头像。 项目使用说明: 1,要下载maven ,并配置环境变量 2,将image.jsp里面的图片换成你的本地图片 3,通过maven 打包。 4,部署到tomcat.打开image.jsp页面就可以验证了。 ...
通过选中区域大小截取屏幕内容,并保存为图片
### Java 图片裁剪技术详解 #### 背景与目的 在开发过程中,经常会遇到对图片进行处理的需求,比如裁剪图片以适应不同的应用场景。本文将详细介绍如何使用Java编程语言,根据指定的位置(x、y)及尺寸(width、...
在Java编程环境中,提取视频中的图片是一项常见的任务,特别是在处理多媒体数据时。这个任务可以通过调用外部工具,如FFmpeg,结合Java的Runtime类或ProcessBuilder类来实现。FFmpeg是一个强大的跨平台的命令行工具...
Java根据坐标截取图片是指使用Java编程语言在指定的图片上根据给定的坐标以及宽高进行图片区域裁剪的技术。这一过程通常包括确定裁剪区域、读取源图片、应用裁剪参数以及保存裁剪后的图片。现在,我们来详细探讨这一...
1.调色板(设定ruler颜色) ...支持自定义快捷键;支持指定文件夹 3.放大镜屏幕取色 4.主窗口换背景 5.将dll封入jar文件运行 6.增加了系统托盘 包含可运行jar文件,双击执行即可 ...完全是功能test用,所以代码组织性比较...
<groupId>org.bytedeco <artifactId>javacpp-presets <version>1.4.3 </dependency>