在java中可能要对图片进行操作,对图片的切割。一般用awt包。
package com.sysi.cn;
import java.awt.Dimension;
import java.awt.Image;
import java.awt.Point;
import java.awt.Rectangle;
import java.awt.color.ColorSpace;
import java.awt.image.BufferedImage;
import java.awt.image.ColorConvertOp;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Iterator;
import javax.imageio.ImageIO;
import javax.imageio.ImageReadParam;
import javax.imageio.ImageReader;
import javax.imageio.stream.ImageInputStream;
//import org.apache.log4j.Logger;
import com.sun.image.codec.jpeg.JPEGCodec;
import com.sun.image.codec.jpeg.JPEGEncodeParam;
import com.sun.image.codec.jpeg.JPEGImageEncoder;
public class ImageCut2 {
// private static final Logger log = Logger.getLogger(ImageUtil.class);
/**
* 切割图片
* @param x 截点横坐标 (从左开始计数)
* @param y 截点纵坐标 (从上开始计数)
* @param width 截取的宽度
* @param height 截取的长度
* @param oldpath 图片位置
* @param newpath 新生成的图片位置
*/
public static void cutImage(int x, int y, int width, int height, String oldpath, String newpath) {
FileInputStream is = null;
ImageInputStream iis = null;
//这个是获取图片扩展名的方法,比如:jpg。我这里有现成的,如果没有,自己实现
// String imgType = StringUtil.getExt(oldpath);
String imgType="jpg";
try {
is = new FileInputStream(oldpath);
Iterator<ImageReader> it = ImageIO.getImageReadersByFormatName(imgType);
ImageReader reader = it.next();
iis = ImageIO.createImageInputStream(is);
reader.setInput(iis, true);
ImageReadParam param = reader.getDefaultReadParam();
Point p = new Point();
p.setLocation(x, y);
Dimension d = new Dimension();
d.setSize(width, height);
Rectangle rect = new Rectangle(p, d);
param.setSourceRegion(rect);
BufferedImage bi = reader.read(0, param);
ImageIO.write(bi, imgType, new File(newpath));
is.close();
iis.close();
} catch (Exception e) {
e.printStackTrace();
// log.error(e);
}
}
/**
* 缩略图片
* @param oldpath 原图片
* @param newpath 新生成的图片存放地址
* @param wdith 缩略后的宽
* @param height 缩略后的高
*/
public static void scaleImage(String oldpath, String newpath, int wdith, int height) {
// 获取老的图片
File oldimg = new File(oldpath);
try {
BufferedImage bi = ImageIO.read(oldimg);
Image Itemp = bi.getScaledInstance(wdith, height, BufferedImage.SCALE_SMOOTH);
BufferedImage thumbnail = new BufferedImage(wdith, height, BufferedImage.TYPE_INT_RGB);
thumbnail.getGraphics().drawImage(Itemp, 0, 0, null);
// 缩略后的图片路径
File newimg = new File(newpath);
FileOutputStream out = new FileOutputStream(newimg);
// 绘图
JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);
JPEGEncodeParam param = encoder.getDefaultJPEGEncodeParam(thumbnail);
param.setQuality(1.0f, false);
encoder.encode(thumbnail);
out.close();
bi.flush();
bi = null;
} catch (IOException e) {
e.printStackTrace();
// log.error(e);
}
}
/**
* 图像类型转换 GIF->JPG GIF->PNG PNG->JPG PNG->GIF(X)
*/
public static void convert(String source, String result)
{
try
{
File f = new File(source);
f.canRead();
f.canWrite();
BufferedImage src = ImageIO.read(f);
ImageIO.write(src, "JPG", new File(result));
}
catch (Exception e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
}
/**
* 彩色转为黑白
* @param source
* @param result
*/
public static void gray(String source, String result)
{
try
{
BufferedImage src = ImageIO.read(new File(source));
ColorSpace cs = ColorSpace.getInstance(ColorSpace.CS_GRAY);
ColorConvertOp op = new ColorConvertOp(cs, null);
src = op.filter(src, null);
ImageIO.write(src, "JPEG", new File(result));
}
catch (IOException e)
{
e.printStackTrace();
}
}
public static void main(String[] args) {
// scaleImage("D:/test.jpg", "D:/3.jpg", 426, 300);
cutImage(0, 0, 426, 300, "D:/cat.jpg", "D:/3.jpg");
}
}
相关推荐
在Java编程语言中,处理图片上传并进行剪切是一项常见的任务,尤其在Web应用或图形处理软件中。本文将深入探讨如何使用Java实现这个功能,包括图片上传、预览以及剪切的完整流程。 首先,我们需要理解图片上传的...
在Java编程语言中,处理图像任务,如截图和切割图片,是常见的需求,尤其是在开发Web应用或社交平台时,例如用户头像的处理。本文将详细介绍如何使用Java进行头像截图和图片切割。 首先,Java提供了`java.awt.image...
在Java编程语言中,图片处理是一项常见的任务,其中包括图片的切割和保存。在这个场景下,我们需要实现的功能包括根据指定的缩放比例对图片进行切割,并将切割后的图片保存到本地。下面将详细介绍如何使用Java来完成...
本项目是基于Java实现的图像分割算法,涉及到的知识点广泛,包括全局阈值分割、Roberts边缘检测以及灰度图像处理和直方图分析。 1. **全局阈值分割**: 全局阈值分割是一种简单的二值化方法,它通过设定一个全局...
"Java JavaScript 图片切割"这个主题涉及到两个主要的技术:Java和JavaScript,它们都可以用来实现图像的裁剪功能。以下是对这两个编程语言在图片切割方面的详细解释。 **Java图片切割** Java作为一个强大的后端...
要使用Tesseract,首先需要安装Tesseract的本地库,然后通过Java接口调用其API进行图片文字识别。 2. **PIL(Python Imaging Library)和ImageIO**:虽然PIL是Python的图像处理库,但Java中可以使用ImageIO来读取、...
本项目主要涉及的是使用Jquery进行前端图片切割和滤镜应用,并结合Java后端实现图片处理功能。下面将详细讲解这些知识点。 首先,Jquery是一种广泛使用的JavaScript库,它简化了DOM操作、事件处理、动画效果和Ajax...
在Java编程语言中,图像分割是一种重要的计算机视觉任务,它涉及将一张完整的图像分割成多个部分或区域。这种技术在许多领域都有广泛的应用,比如数字图像处理、模式识别、机器学习等。图像分割可以通过多种算法实现...
在Java编程中,实现图片上传并添加水印效果是一项常见的任务,这通常涉及到图像处理、图形用户界面(GUI)和文件I/O等多个方面。在这个项目中,我们将关注以下几个关键知识点: 1. **Java图像处理库**:Java标准库...
使用java和一个jquery插件弄的图像切割。类似于网站会员上传头像的功能。 访问地址:/NewImg/uploadimage.jsp 和:/NewImg/imgsel/piccut.jsp 两个地方用的不同javascript代码。 自动创建文件夹,如果文件夹中的文件...
水印可以是文字、图像或图形,通常位于图片的角落或中心,透明度可调,不影响原图的观看。 2. **图像处理**:Java提供了一系列API来处理图像,例如Java 2D API,它允许开发者进行颜色空间转换、滤波、旋转等操作。...
在这个特定的应用场景中,我们利用 JavaCV 对图片进行文字识别(OCR,Optical Character Recognition),以定位并提取指定文字在图片中的位置坐标,同时优化识别速度。 首先,我们需要了解 OCR 的基本概念。OCR ...
在Java编程环境中,将多张JPEG格式的图片转换为动态GIF格式是一项常见的图像处理任务。这个Demo展示了如何使用Java的图像处理库来完成这一过程。以下是对这个过程的详细解释: 首先,我们需要一个能够处理GIF格式的...
Java图像分割系统是一种基于计算机视觉和图像处理技术的软件应用,它主要负责将一幅图像划分为不同的区域,每个区域具有相似的颜色、纹理或其他视觉特性。在这个系统中,图像分割是图像理解和内容分析的关键步骤,...
这个“JAVA GIF图像切割”主题就涉及到如何在Java环境中对GIF图像进行裁剪和保存。 首先,让我们了解GIF图像格式。GIF(Graphics Interchange Format)是一种流行的位图图像格式,支持透明度和动画。由于其跨平台的...
本篇文章将详细探讨如何在Android环境下利用Bitmap来切割图片。 首先,我们需要理解Bitmap对象的基本概念。Bitmap是一个像素数据的容器,包含了图像的宽度、高度以及颜色格式等信息。在Android中,我们可以使用...
本项目聚焦于使用JAVA实现图片的剪切预览功能,并结合JQUERY前端控件来提供用户友好的交互体验。以下将详细阐述相关知识点。 首先,让我们关注“JAVA实现的图片剪切预览”这一主题。在Java中,处理图片主要依靠Java...
在GIS(地理信息系统)领域,地图瓦片是一种将大尺寸地图分割成小块图片的技术,通常用于提高网络地图服务的加载速度和显示效率。这个JAVA工程提供了一整套解决方案,可以帮助用户生成、裁剪、管理和使用百度地图的...
在这个场景中,我们特别提到了“java ocr图片识别”并强调了它“带Tesseract”以及“带中文库”。这表明我们将讨论如何使用Java结合Tesseract OCR引擎,特别是针对中文文本识别的解决方案。 Tesseract OCR是谷歌...
二值图像是一种只有两种颜色(通常是黑色和白色)的图像,常用于图像分割和分析。形态学操作如膨胀、腐蚀、开运算和闭运算可以用于改变图像的形状和结构,这对于图像预处理特别有用。在Java中,我们可以使用`java....