`
jayjayjaylun
  • 浏览: 89792 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

java 图片旋转

阅读更多
package com.gt.qtel.mb.util;

import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Transparency;
import java.awt.geom.AffineTransform;
import java.awt.image.AffineTransformOp;
import java.awt.image.BufferedImage;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;

import javax.imageio.ImageIO;
import javax.imageio.stream.ImageOutputStream;

public class RotateImageDegreesUtil {

	public static InputStream rotateImg(BufferedImage image, int degree, Color bgcolor) throws IOException {

		int iw = image.getWidth();//原始图象的宽度 
		int ih = image.getHeight();//原始图象的高度  
		int w = 0;
		int h = 0;
		int x = 0;
		int y = 0;
		degree = degree % 360;
		if (degree < 0)
			degree = 360 + degree;//将角度转换到0-360度之间
		double ang = Math.toRadians(degree);//将角度转为弧度

		/**
		 *确定旋转后的图象的高度和宽度
		 */

		if (degree == 180 || degree == 0 || degree == 360) {
			w = iw;
			h = ih;
		} else if (degree == 90 || degree == 270) {
			w = ih;
			h = iw;
		} else {
			int d = iw + ih;
			w = (int) (d * Math.abs(Math.cos(ang)));
			h = (int) (d * Math.abs(Math.sin(ang)));
		}

		x = (w / 2) - (iw / 2);//确定原点坐标
		y = (h / 2) - (ih / 2);
		BufferedImage rotatedImage = new BufferedImage(w, h, image.getType());
		Graphics2D gs = (Graphics2D)rotatedImage.getGraphics();
		if(bgcolor==null){
			rotatedImage  = gs.getDeviceConfiguration().createCompatibleImage(w, h, Transparency.TRANSLUCENT);
		}else{
			gs.setColor(bgcolor);
			gs.fillRect(0, 0, w, h);//以给定颜色绘制旋转后图片的背景
		}
		
		AffineTransform at = new AffineTransform();
		at.rotate(ang, w / 2, h / 2);//旋转图象
		at.translate(x, y);
		AffineTransformOp op = new AffineTransformOp(at, AffineTransformOp.TYPE_BICUBIC);
		op.filter(image, rotatedImage);
		image = rotatedImage;
		
		ByteArrayOutputStream  byteOut= new ByteArrayOutputStream();
		ImageOutputStream iamgeOut = ImageIO.createImageOutputStream(byteOut);
		
		ImageIO.write(image, "png", iamgeOut);
		InputStream  inputStream = new ByteArrayInputStream(byteOut.toByteArray());
		
		return inputStream;
	}
	
	
}

	
/***Invoked***/
InputStream  fileInputStream =multipartFile.getInputStream();
BufferedImage bufferedimage = ImageIO.read(fileInputStream);
InputStream inputStream = RotateImageDegreesUtil.rotateImg(bufferedimage, rotate, null);
							
分享到:
评论

相关推荐

    Java图片旋转_java_

    JFrame frame = new JFrame("Java图片旋转"); JSlider slider = new JSlider(0, 360); JLabel imageLabel = new JLabel(); frame.add(slider, BorderLayout.NORTH); frame.add(imageLabel, BorderLayout.CENTER); `...

    java图片旋转

    在Java编程语言中,处理图像是一项常见的任务,...以上就是Java图片旋转的主要技术点,通过理解并运用这些知识点,开发者可以轻松地实现图片的旋转操作。提供的压缩包文件中的代码和注释将有助于进一步深入理解和实践。

    java图片旋转处理

    这个“java图片旋转处理”包提供了方便的方法,使开发者能够轻松地对图片进行旋转。为了理解这些方法的工作原理以及如何使用它们,我们需要了解一些核心概念和技术。 首先,Java中的图像处理主要通过Java AWT...

    java 图片旋转、翻转、镜像处理

    1. **图片旋转**: - 使用Java 2D API中的`AffineTransform`类可以实现图片的旋转。首先创建一个`AffineTransform`对象,设置旋转角度(以弧度为单位),然后使用`Graphics2D`的`drawImage()`方法,传入原图像、...

    Java图片旋转程序实例

    本文将深入探讨如何使用Java实现图片旋转功能,同时也会涉及到滑动条事件处理技术,使得用户可以自定义旋转角度。 首先,我们需要引入Java的图像处理库,即Java Advanced Imaging (JAI) API。JAI提供了丰富的图像...

    java处理图片上传旋转问题,前台后台讲解特别明了。

    在开发Web应用时,图片上传是一项常见的功能...以上代码示例展示了使用Java Imaging API进行图片旋转的基本步骤。实际应用中,你需要根据具体需求选择合适的方法和技术,确保图片上传的完整流程都能正确处理旋转问题。

    java 将图片进行180度旋转

    在Java编程语言中,对图片进行180度旋转是一项常见的图像处理操作,这通常涉及到对像素数据的重新排列。以下是一些关于如何在Java中实现这个功能的关键知识点: 1. **Java AWT 和 Swing 图像处理库**: Java提供了...

    java绘图 图片旋转 实例代码

    总之,Java绘图和图片旋转涉及到`Graphics2D`类的使用,包括加载和保存图像、创建`Graphics2D`对象、设置旋转参数以及执行旋转操作。通过灵活运用这些方法,开发者可以实现各种复杂的图像处理需求。在实际应用中,...

    java 实现图片90.180.270.360°旋转

    ### Java实现图片90°、180°、270°、360°旋转的知识点 在本文中,我们将深入探讨如何使用Java来实现图片的旋转功能,特别是90°、180°、270°以及360°的旋转。通过解析给定的文件内容,我们可以了解到该功能...

    java 图片压缩 iphone拍照上传旋转问题处理压缩工具类

    在Java开发中,处理图像尤其是来自...以上就是使用Java处理iPhone拍照上传时的图片旋转和压缩问题的方法。在实际应用中,可能还需要考虑其他因素,如图片尺寸调整、色彩管理等,但这个工具类已经能解决大部分基本需求。

    Java实现图片旋转的代码.rar

    以上就是使用Java实现图片旋转的基本流程。实际项目中可能需要考虑更多细节,如处理透明度、优化性能等。通过熟练掌握这些基础知识,你可以灵活地对图片进行各种操作,满足不同场景的需求。在提供的压缩包文件"codes...

    一个的图片3d旋转方法

    "一个图片3D旋转方法" 根据给定的文件信息,我们可以总结出以下几个知识点: 1. 图像翻转动画效果的实现:通过继承Animation类,重写initialize和applyTransformation方法可以实现图片的3D旋转动画效果。 在...

    JAVA控制图片缩小和旋转

    用JAVA实现了图片的缩小和旋转,保证可用

    JAVA编程对图片进行旋转

    JAVA编程主要用于对图片进行操作,包括图片的水平翻转,垂直翻转和180°旋转

    java实现图片角度旋转并获得图片信息

    图片角度旋转是指将图片旋转一定角度,以便更好地展示图片的内容。在Java中,我们可以使用Java的图像处理库对图片进行旋转操作。具体来说,我们可以使用BufferedImage类来表示图片,然后使用Graphics2D类来进行旋转...

    java图片处理类

    这是一个java生成随即图片验证码,java图片压缩,java图片水印 ,java图片裁剪 ,java图片旋转 ,java图片放大缩小等工具类,里面有测试方法,欢迎使用!

    java实现图像旋转放大等几何变换

    在Java编程语言中,图像处理是一项常见的任务,涵盖了多种操作,如读取、保存、旋转以及缩放。本文将深入探讨如何使用Java实现这些几何变换,以满足图像处理的需求。 首先,我们需要导入处理图像所必需的Java库。最...

    Java实现图片旋转功能.rar

    Java实现图片旋转功能,基本上是图像缓冲区、过滤图像,重载容器,重绘组件,仿射变换对象,创建仿射变换操作对象,让用于显示的缓冲区图像指向过滤后的图像等的操作,可了解下Java如何处理图像数据的。部分代码如下...

    Java实现图片翻转以及任意角度旋转

    图片任意角度旋转是指将图片旋转到任意角度。使用Java中的Graphics2D类,可以通过AffineTransform类来实现图片的任意角度旋转。 在实现图片任意角度旋转时,需要使用Graphics2D类的rotate方法,并将旋转角度传递给...

Global site tag (gtag.js) - Google Analytics