`
747017186
  • 浏览: 329905 次
社区版块
存档分类
最新评论

java 切割图片

    博客分类:
  • java
 
阅读更多

在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 切割图片 可预览,完整效果

    在Java编程语言中,处理图片上传并进行剪切是一项常见的任务,尤其在Web应用或图形处理软件中。本文将深入探讨如何使用Java实现这个功能,包括图片上传、预览以及剪切的完整流程。 首先,我们需要理解图片上传的...

    java 头像截图 java切割图片

    在Java编程语言中,处理图像任务,如截图和切割图片,是常见的需求,尤其是在开发Web应用或社交平台时,例如用户头像的处理。本文将详细介绍如何使用Java进行头像截图和图片切割。 首先,Java提供了`java.awt.image...

    java 图片 切割 保存

    在Java编程语言中,图片处理是一项常见的任务,其中包括图片的切割和保存。在这个场景下,我们需要实现的功能包括根据指定的缩放比例对图片进行切割,并将切割后的图片保存到本地。下面将详细介绍如何使用Java来完成...

    基于java的图像分割(数字图像处理)

    本项目是基于Java实现的图像分割算法,涉及到的知识点广泛,包括全局阈值分割、Roberts边缘检测以及灰度图像处理和直方图分析。 1. **全局阈值分割**: 全局阈值分割是一种简单的二值化方法,它通过设定一个全局...

    java javascript 图片切割

    "Java JavaScript 图片切割"这个主题涉及到两个主要的技术:Java和JavaScript,它们都可以用来实现图像的裁剪功能。以下是对这两个编程语言在图片切割方面的详细解释。 **Java图片切割** Java作为一个强大的后端...

    java ocr 图片解析

    要使用Tesseract,首先需要安装Tesseract的本地库,然后通过Java接口调用其API进行图片文字识别。 2. **PIL(Python Imaging Library)和ImageIO**:虽然PIL是Python的图像处理库,但Java中可以使用ImageIO来读取、...

    Jquery+java图片切割 滤镜功能

    本项目主要涉及的是使用Jquery进行前端图片切割和滤镜应用,并结合Java后端实现图片处理功能。下面将详细讲解这些知识点。 首先,Jquery是一种广泛使用的JavaScript库,它简化了DOM操作、事件处理、动画效果和Ajax...

    java图像分割方法集合

    在Java编程语言中,图像分割是一种重要的计算机视觉任务,它涉及将一张完整的图像分割成多个部分或区域。这种技术在许多领域都有广泛的应用,比如数字图像处理、模式识别、机器学习等。图像分割可以通过多种算法实现...

    java实现图片上传并添加水印效果(文字水印,蒙版,logo图片),自动进行文字大小行数位置匹配 ,文字自动换行

    在Java编程中,实现图片上传并添加水印效果是一项常见的任务,这通常涉及到图像处理、图形用户界面(GUI)和文件I/O等多个方面。在这个项目中,我们将关注以下几个关键知识点: 1. **Java图像处理库**:Java标准库...

    java图片切割,图片存储

    使用java和一个jquery插件弄的图像切割。类似于网站会员上传头像的功能。 访问地址:/NewImg/uploadimage.jsp 和:/NewImg/imgsel/piccut.jsp 两个地方用的不同javascript代码。 自动创建文件夹,如果文件夹中的文件...

    java 水印 图像处理 图片分割 裁剪 缩放

    水印可以是文字、图像或图形,通常位于图片的角落或中心,透明度可调,不影响原图的观看。 2. **图像处理**:Java提供了一系列API来处理图像,例如Java 2D API,它允许开发者进行颜色空间转换、滤波、旋转等操作。...

    javacv对图片进行文字提取,定位指定文字在图片的位置坐标,提高识别速度

    在这个特定的应用场景中,我们利用 JavaCV 对图片进行文字识别(OCR,Optical Character Recognition),以定位并提取指定文字在图片中的位置坐标,同时优化识别速度。 首先,我们需要了解 OCR 的基本概念。OCR ...

    java实现多张jgp图片转动画gif格式

    在Java编程环境中,将多张JPEG格式的图片转换为动态GIF格式是一项常见的图像处理任务。这个Demo展示了如何使用Java的图像处理库来完成这一过程。以下是对这个过程的详细解释: 首先,我们需要一个能够处理GIF格式的...

    Java图像分割系统实现

    Java图像分割系统是一种基于计算机视觉和图像处理技术的软件应用,它主要负责将一幅图像划分为不同的区域,每个区域具有相似的颜色、纹理或其他视觉特性。在这个系统中,图像分割是图像理解和内容分析的关键步骤,...

    JAVA GIF图像切割

    这个“JAVA GIF图像切割”主题就涉及到如何在Java环境中对GIF图像进行裁剪和保存。 首先,让我们了解GIF图像格式。GIF(Graphics Interchange Format)是一种流行的位图图像格式,支持透明度和动画。由于其跨平台的...

    Android下利用Bitmap切割图片

    本篇文章将详细探讨如何在Android环境下利用Bitmap来切割图片。 首先,我们需要理解Bitmap对象的基本概念。Bitmap是一个像素数据的容器,包含了图像的宽度、高度以及颜色格式等信息。在Android中,我们可以使用...

    JAVA实现的图片剪切预览

    本项目聚焦于使用JAVA实现图片的剪切预览功能,并结合JQUERY前端控件来提供用户友好的交互体验。以下将详细阐述相关知识点。 首先,让我们关注“JAVA实现的图片剪切预览”这一主题。在Java中,处理图片主要依靠Java...

    百度地图瓦片工具(JAVA完整工程)

    在GIS(地理信息系统)领域,地图瓦片是一种将大尺寸地图分割成小块图片的技术,通常用于提高网络地图服务的加载速度和显示效率。这个JAVA工程提供了一整套解决方案,可以帮助用户生成、裁剪、管理和使用百度地图的...

    java ocr图片识别

    在这个场景中,我们特别提到了“java ocr图片识别”并强调了它“带Tesseract”以及“带中文库”。这表明我们将讨论如何使用Java结合Tesseract OCR引擎,特别是针对中文文本识别的解决方案。 Tesseract OCR是谷歌...

    java实现的图形图像区域填充

    二值图像是一种只有两种颜色(通常是黑色和白色)的图像,常用于图像分割和分析。形态学操作如膨胀、腐蚀、开运算和闭运算可以用于改变图像的形状和结构,这对于图像预处理特别有用。在Java中,我们可以使用`java....

Global site tag (gtag.js) - Google Analytics