java实现图像旋转
算法原理https://blog.csdn.net/xiaoshen0121/article/details/79428344?ops_request_misc=&request_id=&biz_id=102&utm_term=%E5%9B%BE%E5%83%8F%E6%97%8B%E8%BD%AC&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-8-79428344.nonecase&spm=1018.2226.3001.4187
package img;import javax.imageio.ImageIO;import java.awt.Color;
import java.awt.image.BufferedImage;
import java.io.File;public class main {public static void main(String[] args) throws Exception {// 读取图片BufferedImage bufImage = ImageIO.read(new File("F:\\Files\\javaFile\\Image\\src\\img\\OrignImg.jpg"));rotateImage(bufImage,35);System.out.println("Successfully!");}public static void rotateImage(BufferedImage image,double degree) throws Exception {degree=Math.toRadians(360-degree);int w = image.getWidth(); int h = image.getHeight(); int new_w=(int) Math.ceil(Math.abs(w*Math.cos(degree)) + Math.abs(h*Math.sin(degree)));int new_h=(int) Math.ceil(Math.abs(h*Math.cos(degree)) + Math.abs(w*Math.sin(degree)));BufferedImage rotImg= new BufferedImage(new_w,new_h,BufferedImage.TYPE_INT_RGB);for (int x = 0; x < new_w; x++) { for (int y = 0; y < new_h; y++) { int x1= (int) Math.round(x*Math.cos(degree)+y*Math.sin(degree)-0.5*new_w*Math.cos(degree)-0.5*new_h*Math.sin(degree)+0.5*w);int y1= (int) Math.round(-x*Math.sin(degree)+y*Math.cos(degree)+0.5*new_w*Math.sin(degree)-0.5*new_h*Math.cos(degree)+0.5*h);if(x1>=0&&x1<w&&y1>=0&&y1<h) {rotImg.setRGB(x, y, image.getRGB(x1, y1));}else {rotImg.setRGB(x, y, new Color(255, 255, 255).getRGB());}} } // 把修改过的 rotImg 保存到本地ImageIO.write(rotImg, "JPEG", new File("F:\\Files\\javaFile\\Image\\src\\img\\rot.jpg"));}
}
实现效果
java实现图像旋转相关推荐
- java图像处理之实现任意角度图像旋转
原理及步骤: 1.旋转角度:图像顺时针或逆时针旋转的角度,以θ表示,需要用户输入: 2.旋转中心:一般以图像中心作为旋转中心,周围像素围绕其旋转: 3.画布大小:由于图像旋转后产生的图像宽和高与原始图 ...
- CCF201503-1 图像旋转(100分)【数学计算】
试题编号: 201503-1 试题名称: 图像旋转 时间限制: 5.0s 内存限制: 256.0MB 问题描述: 问题描述 旋转是图像处理的基本操作,在这个问题中,你需要将一个图像逆时针旋转90度. ...
- Java平台图像光学标记处理API-Aspose.OMR首次公开发行!来看看有哪些功能
Aspose一直致力于研究用于执行文件间格式转换,对文件进行操作(例如创建.版本.操作等)的文件格式API.好消息来啦!专门用于Java平台识别光学标识并管理转换的API控件Aspose.OMR fo ...
- 基于Java的图像象素处理(1)
原文作者: Richard G. Baldwin 原文的地址: http://www.developer.com/java/other/article.php/3403921 翻译: Olajavam ...
- opencv java 灰度_如何使用Java将图像转换为灰度?
在Java语言编程中,如何使用Java将图片转换为灰度? 注意:需要访问网址:http://book2s.com/java/jar/o/opencv/download-opencv-3.2.0-0.h ...
- OpenCV中图像旋转(warpAffine)算法的实现过程
在OpenCV中,目前并没有现成的函数直接用来实现图像旋转,它是用仿射变换函数cv::warpAffine来实现的,此函数目前支持4种插值算法,最近邻.双线性.双三次.兰索斯插值,如果传进去的参数为基 ...
- 经验 | OpenCV图像旋转的原理与技巧
点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 本文转自|OpenCV学堂 01 引言 初学图像处理,很多人遇到的 ...
- OpenCV图像旋转的原理与技巧
点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 转自|OpenCV学堂 01 引言 初学图像处理,很多人遇到的第一 ...
- R语言使用persp函数绘制三维图像实战(3D):自定义3D图、图像旋转、添加轴标签
R语言使用persp函数绘制三维图像实战(3D):自定义3D图.图像旋转.添加轴标签 目录
最新文章
- 数据结构与算法(3-1)栈(顺序栈、两栈共享空间、链栈、栈的计算器)
- EventBus简单分析
- python找出值为nan_Python Numpy:找到list中的np.nan值方法
- 记录一下MATLAB中ode45函数求解非刚性微分方程
- 网站为什么要做优化?
- 【深度学习】何恺明经典之作—2009 CVPR Best Paper | Dark Channel Prior
- django权限二(多级菜单的设计以及展示)
- python字符串_python字符串格式化
- makefile编写---:= ?= += =的区别
- CentOS 7 配置DHCP服务器
- PostgreSQL 的 target_list分析(三)
- 编程题_排列组合问题
- 推荐系统 --- 工程
- 大学为什么没有UI设计专业
- 大型医院 HIS源码
- 题9.5:有10个学生,每个学生的数据包括学号、姓名、3门课程的成绩,从键盘输人10个 学生数据,要求输出3门课程总平均成绩,以及最高分的学生的数据(包括学号、姓 名、3门课程成绩、平均分数)。
- 浙大PatC语言练习50-76
- ultraos win10启动盘_ultraiso制作u盘启动盘教程图文详解
- react使用antd-mobile做自定义替换头像功能
- 百度图像识别API调用(python)