`
wxq8383112
  • 浏览: 10383 次
  • 性别: Icon_minigender_1
  • 来自: 地球
最近访客 更多访客>>
社区版块
存档分类
最新评论

java 图片旋转

    博客分类:
  • java
 
阅读更多
    import java.awt.Color; 
    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 ImageChange { 
     
        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; 
        } 

         
    } 
分享到:
评论

相关推荐

    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 图片压缩 iphone拍照上传旋转问题处理压缩工具类

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

    java绘图 图片旋转 实例代码

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

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

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

    java 实现图片90.180.270.360°旋转

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

    一个的图片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