java rotate 90_2
来源:互联网 发布:大学生网贷数据分析 编辑:程序博客网 时间:2024/06/11 15:30
转载
http://stackoverflow.com/questions/34459747/why-does-an-affine-rotation-in-90-270-degrees-not-preserve-correct-dimensions-b
import java.awt.geom.AffineTransform;import java.awt.image.AffineTransformOp;import java.awt.image.BufferedImage;import java.io.IOException;import java.net.URL;import javax.imageio.ImageIO;import javax.swing.Icon;import javax.swing.ImageIcon;import javax.swing.JOptionPane;import javax.swing.SwingUtilities;publicclassTestAffineTransform{privatestaticfinalString IMG_PATH="https://upload.wikimedia.org/wikipedia/commons/thumb"+"/4/42/MerryOldSanta.jpg/220px-MerryOldSanta.jpg";privatestaticBufferedImage originalImg;publicstaticvoid main(String[] args){try{ URL imgUrl=new URL(IMG_PATH); originalImg=ImageIO.read(imgUrl);BufferedImage nextRotImg = transform(originalImg,1);final Icon originalIcon=newImageIcon(originalImg);finalIcon nextRotIcon=newImageIcon(nextRotImg);SwingUtilities.invokeLater(()->{JOptionPane.showMessageDialog(null, originalIcon);JOptionPane.showMessageDialog(null, nextRotIcon);});}catch(IOException e){ e.printStackTrace();System.exit(-1);}}publicstaticBufferedImage transform(BufferedImage image,int numquadrants){int w0= image.getWidth();int h0 = image.getHeight();int w1= w0;int h1= h0;int centerX= w0/2;int centerY= h0/2;if(numquadrants%2==1){ w1= h0; h1= w0;if(numquadrants%4==1){ centerX=Math.max(w0, h0)/2;}else{ centerX=Math.min(w0, h0)/2;} centerY= centerX;}AffineTransform affineTransform=newAffineTransform(); affineTransform.setToQuadrantRotation(numquadrants, centerX, centerY);AffineTransformOp opRotated= newAffineTransformOp(affineTransform,AffineTransformOp.TYPE_BILINEAR);BufferedImage transformedImage = newBufferedImage(w1, h1, image.getType()); opRotated.filter(image, transformedImage);return transformedImage;}}
http://www.oschina.net/code/snippet_1466630_44221
http://www.oschina.net/code/snippet_818200_45972
http://blog.livedoor.jp/mgsoft/archives/1007874070.html
- java rotate 90_2
- Java 实验6_2
- Java se笔记_2
- java高级特性_2
- Java流_2
- java学习_2.数据类型
- java 代码片段_2
- 读书笔记:java线程_2
- JAVA内部类_2
- java基本语法_2
- Java初级笔记_2
- java内存分析_2
- JAVA基础知识_2
- Java面向对象_2
- Java IO流_2
- Java 多线程_2
- Java 复数_2
- Java基础笔记_2
- 程序软件版本管理
- 备份基础与命令
- 三 数 最 大 值 : 输 入 3 个 整 数 , 输 出 其 中 的 最 大 值 。
- U深度-重装电脑系统
- poj3145 / hdu3303 Harmony Forever(树状数组 + 鸽巢原理)
- java rotate 90_2
- 如何获得想要的浮点数长度(如Float类型的数据)
- 效率为王!11款最高效的团队协作工具
- MySQL基础之索引理论篇
- android安装
- JavaWeb:将欢迎界面转发到servlet
- MySQL基础之索引实战篇
- WIN2008SERVER下SQL 2000的问题
- 广州市新一轮城市轨道交通建设规划方案