C# 图片旋转360度程序
这几天开发一个程序,需要将一个图片旋转360度然后每一个角度保存下来。刚开始本来想着是让美工弄的,但是让一个美工手动转360度,她会喷你一脸。
using System; using System.Collections.Generic; using System.Drawing; using System.IO; using System.Linq; using System.Text; namespace 图片旋转程序 {public class ImageHelper{/// <summary> /// 以逆时针为方向对图像进行旋转 /// </summary> /// <param name="b">位图流</param> /// <param name="angle">旋转角度[0,360](前台给的)</param> /// <returns></returns> public Image RotateImg(Image b, int angle, string file){angle = angle % 360;//弧度转换 double radian = angle * Math.PI / 180.0;double cos = Math.Cos(radian);double sin = Math.Sin(radian);//原图的宽和高 int w = b.Width;int h = b.Height;int W = (int)(Math.Max(Math.Abs(w * cos - h * sin), Math.Abs(w * cos + h * sin)));int H = (int)(Math.Max(Math.Abs(w * sin - h * cos), Math.Abs(w * sin + h * cos)));//目标位图 Bitmap dsImage = new Bitmap(W, H);System.Drawing.Graphics g = System.Drawing.Graphics.FromImage(dsImage);g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.Bilinear;g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;//计算偏移量 Point Offset = new Point((W - w) / 2, (H - h) / 2);//构造图像显示区域:让图像的中心与窗口的中心点一致 Rectangle rect = new Rectangle(Offset.X, Offset.Y, w, h);Point center = new Point(rect.X + rect.Width / 2, rect.Y + rect.Height / 2);g.TranslateTransform(center.X, center.Y);g.RotateTransform(angle);//恢复图像在水平和垂直方向的平移 g.TranslateTransform(-center.X, -center.Y);g.DrawImage(b, rect);//重至绘图的所有变换 g.ResetTransform();g.Save();g.Dispose();//保存旋转后的图片 dsImage.Save(@"D:\img\" + Path.GetFileNameWithoutExtension(file) + "\\" + angle + ".png", System.Drawing.Imaging.ImageFormat.Png);return dsImage;}public Image RotateImg(string filename, int angle, string file){return RotateImg(GetSourceImg(filename), angle, file);}public Image GetSourceImg(string filename){Image img;img = Bitmap.FromFile(filename);return img;} }class Program{static void Main(string[] args){string[] strArr = Directory.GetFiles(@"D:\img");foreach (string file in strArr){Console.WriteLine(file); //输出E:\123\新建文本文件.txt Console.WriteLine(Path.GetFileNameWithoutExtension(file));//如果要保存的目录不存在,则先创建if (!Directory.Exists(@"D:\img\" + Path.GetFileNameWithoutExtension(file))){Directory.CreateDirectory(@"D:\img\" + Path.GetFileNameWithoutExtension(file));}FileStream fs = new FileStream(file, FileMode.Open, FileAccess.Read);Image img = Bitmap.FromStream(fs);ImageHelper IH = new ImageHelper();for (int i = 1; i <= 360; i++){IH.RotateImg(img, i, file);}fs.Close();}Console.ReadKey();}} }
C# 图片旋转360度程序相关推荐
- 鼠标画上去图片旋转360度
**鼠标画上去图片旋转360度** <!DOCTYPE html> <html lang="en"> <head><meta charse ...
- jquery 点击旋转效果,点击图片旋转360度
设置全局变量 var deg = 0; //旋转度数 var blok = true; //判断是否在动画,或者时间内css://图片内赋值css样式transition:all 0.5s linea ...
- css3 图片旋转360度动画
html <div class="n_animation_picture"><img class="n_picture_adm" src=&q ...
- 图片可以360度旋转类似广告代码
图片可以360度旋转类似广告代码 <div style='height:60px; line-height:50px; text-align:center; color: #b2b2b2;'&g ...
- html中如何使图片自动旋转90度,css怎么让图片旋转90度?
css怎么让图片旋转90度?下面本篇文章给大家介绍一下使用CSS让图片旋转90度的方法.有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助. css怎么让图片旋转90度? 在CSS中,可以 ...
- 将base64图片旋转90度,将图片格式化(保持透明背景)
js将图片旋转90度 function rotateBase64Img(src, edg) {var canvas = document.createElement("canvas" ...
- 怎么将图片旋转45度?
怎么将图片旋转45度?相信很多小伙伴在学习和工作的过程中,时常会需要将图片旋转45度,这个时候很多人习惯使用word和美图秀秀操作,或者使用系统自带的编辑器处理,但他们可能会很容易的把图片旋转90度, ...
- 如何将PDF图片旋转90度,盘点这个小方法
很多时候我们在网上下载的PDF文件中有很多图片都是倒着的,这就需要将图片旋转过来使用,那么如何将PDF文件中图片旋转90度?今天就来为大家盘点这个小方法,一起来看看吧. 1.我们大家肯定都使用PDF图 ...
- css3实现无限旋转360度
工作中遇到需要无限旋转360度的loading圈,亲测下面css样式可用. @-webkit-keyframes animal {0%{transform: rotate(0deg);-ms-tran ...
最新文章
- TreeMap源码分析,看了都说好
- 基于Python操作ElasticSearch
- 超声检查预测一年后RA病人的MRI侵蚀进展
- HDU 1561 The more ,The Better
- 面试必会系列 - 1.1 Java SE 基础
- linux 抓包文件 导出,tcpdump抓包和scp导出以及Wireshark查看
- LeetCode 1087. 字母切换(回溯)
- 判断本地是否存在Jquery文件,如果不存在则使用CDN加速的Jquery文件
- Lucene 3.0 Field类(自己学习)
- 用python给自己DIY一款小说阅读器
- 初始化git仓库,并push到远端
- ArcGIS API for JavaScript心得体验
- Linux文件解压缩
- idea中安装maven3.6.1
- C 喵帕斯之平地摔 SDUT
- part3_模块五作业
- 图数据库实操:用 Nebula Graph 破解成语版 Wordle 谜底
- 大数据营销更需要消费者洞察
- Java 定义一个抽象类—水果,其中包括getWeight()方法,创建若干水果对象存放在一个水果类型的数组中,输出数组中所有水果的类型、重量。
- 软考高级 真题 2010年上半年 信息系统项目管理师 案例分析
热门文章
- 【人工智能】人类该如何看待人工智能的“诗与远方”?
- 科技部发布新一批国家新一代人工智能开放创新平台
- AI产业链分布图曝光:1040个玩家,BAT率先步入应用
- 中国独角兽企业总榜发布:百亿超级独角兽达13家(附榜单)
- 中科院脑科学与智能技术卓越创新中心:在“脑海”中突破进取
- 互联网如何“升级”制造业?《“人工智能+制造”产业发展研究报告》发布
- 一文读懂:深扒人脸识别60年技术发展史
- 阿里技术人的成长路径是什么?
- 想 new 个对象过七夕,她却抛了异常
- Connector for Python