这几天开发一个程序,需要将一个图片旋转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度程序相关推荐

  1. 鼠标画上去图片旋转360度

    **鼠标画上去图片旋转360度** <!DOCTYPE html> <html lang="en"> <head><meta charse ...

  2. jquery 点击旋转效果,点击图片旋转360度

    设置全局变量 var deg = 0; //旋转度数 var blok = true; //判断是否在动画,或者时间内css://图片内赋值css样式transition:all 0.5s linea ...

  3. css3 图片旋转360度动画

    html <div class="n_animation_picture"><img class="n_picture_adm" src=&q ...

  4. 图片可以360度旋转类似广告代码

    图片可以360度旋转类似广告代码 <div style='height:60px; line-height:50px; text-align:center; color: #b2b2b2;'&g ...

  5. html中如何使图片自动旋转90度,css怎么让图片旋转90度?

    css怎么让图片旋转90度?下面本篇文章给大家介绍一下使用CSS让图片旋转90度的方法.有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助. css怎么让图片旋转90度? 在CSS中,可以 ...

  6. 将base64图片旋转90度,将图片格式化(保持透明背景)

    js将图片旋转90度 function rotateBase64Img(src, edg) {var canvas = document.createElement("canvas" ...

  7. 怎么将图片旋转45度?

    怎么将图片旋转45度?相信很多小伙伴在学习和工作的过程中,时常会需要将图片旋转45度,这个时候很多人习惯使用word和美图秀秀操作,或者使用系统自带的编辑器处理,但他们可能会很容易的把图片旋转90度, ...

  8. 如何将PDF图片旋转90度,盘点这个小方法

    很多时候我们在网上下载的PDF文件中有很多图片都是倒着的,这就需要将图片旋转过来使用,那么如何将PDF文件中图片旋转90度?今天就来为大家盘点这个小方法,一起来看看吧. 1.我们大家肯定都使用PDF图 ...

  9. css3实现无限旋转360度

    工作中遇到需要无限旋转360度的loading圈,亲测下面css样式可用. @-webkit-keyframes animal {0%{transform: rotate(0deg);-ms-tran ...

最新文章

  1. TreeMap源码分析,看了都说好
  2. 基于Python操作ElasticSearch
  3. 超声检查预测一年后RA病人的MRI侵蚀进展
  4. HDU 1561 The more ,The Better
  5. 面试必会系列 - 1.1 Java SE 基础
  6. linux 抓包文件 导出,tcpdump抓包和scp导出以及Wireshark查看
  7. LeetCode 1087. 字母切换(回溯)
  8. 判断本地是否存在Jquery文件,如果不存在则使用CDN加速的Jquery文件
  9. Lucene 3.0 Field类(自己学习)
  10. 用python给自己DIY一款小说阅读器
  11. 初始化git仓库,并push到远端
  12. ArcGIS API for JavaScript心得体验
  13. Linux文件解压缩
  14. idea中安装maven3.6.1
  15. C 喵帕斯之平地摔 SDUT
  16. part3_模块五作业
  17. 图数据库实操:用 Nebula Graph 破解成语版 Wordle 谜底
  18. 大数据营销更需要消费者洞察
  19. Java 定义一个抽象类—水果,其中包括getWeight()方法,创建若干水果对象存放在一个水果类型的数组中,输出数组中所有水果的类型、重量。
  20. 软考高级 真题 2010年上半年 信息系统项目管理师 案例分析

热门文章

  1. 【人工智能】人类该如何看待人工智能的“诗与远方”?
  2. 科技部发布新一批国家新一代人工智能开放创新平台
  3. AI产业链分布图曝光:1040个玩家,BAT率先步入应用
  4. 中国独角兽企业总榜发布:百亿超级独角兽达13家(附榜单)
  5. 中科院脑科学与智能技术卓越创新中心:在“脑海”中突破进取
  6. 互联网如何“升级”制造业?《“人工智能+制造”产业发展研究报告》发布
  7. 一文读懂:深扒人脸识别60年技术发展史
  8. 阿里技术人的成长路径是什么?
  9. 想 new 个对象过七夕,她却抛了异常
  10. Connector for Python