Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >C# 图片沿中心点进行角度旋转

C# 图片沿中心点进行角度旋转

作者头像
SpringSun
发布于 2022-05-20 01:16:17
发布于 2022-05-20 01:16:17
1.1K00
代码可运行
举报
文章被收录于专栏:技术赋能学术技术赋能学术
运行总次数:0
代码可运行

Image 图片沿中心点进行任意角度旋转

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
        public static Image RotateImg(Image b, int angle)
        {
            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;
            //计算偏移量 
            System.Drawing.Point Offset = new System.Drawing.Point((W - w) / 2, (H - h) / 2);
            //构造图像显示区域:让图像的中心与窗口的中心点一致 
            System.Drawing.Rectangle rect = new System.Drawing.Rectangle(Offset.X, Offset.Y, w, h);
            System.Drawing.Point center = new System.Drawing.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();
            return dsImage;
        }
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-05-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
win2d 画出好看的图形
本文告诉大家,win2d 不需要从零开始做,以前做出来的很多库其实只需要做很小修改就可以做出好看的效果,而且用在 UWP 上。本文修改原先 大神写的 GDI 图形到 win2d 上,而且可以运行起来。
林德熙
2018/09/19
7170
win2d 画出好看的图形
C# 实现 Word 加盖骑缝章效果
在OA的自动化处理系统中,通过审批的最终节点,可能会对WORD文件加盖电子章,比如定位带有指定文字的Range周围加盖电子章,骑缝章,甚至水印图片。比如如下效果图:
初九之潜龙勿用
2024/06/20
1160
C# 实现 Word 加盖骑缝章效果
ImageHelper.cs-支持高清缩略图
using System; using System.Collections.Generic; using System.Text; using System.IO; using System.Drawing; using System.Drawing.Drawing2D; using System.Drawing.Imaging; namespace System { /// <summary> /// 图片处理类 /// </summary> public class
KenTalk
2018/09/11
9400
使用 C# Graphics 绘图来绘制一个足球
2022卡塔尔世界杯是足球爱好者的狂欢,这与我毫无关系,作为一个缺乏运动的人,还是不要去看人家玩命的运动了。虽然不看球,不过这波热度的持续冲击,还是让我在朋友圈刷到了结局 ———— 球王梅西如愿以偿捧得金杯,后起之秀姆巴佩加冕金靴。但作为程序员,为了增加一些参与感我就拿 C# 画个足球图案吧。
桑榆肖物
2023/01/03
6590
使用 C# Graphics 绘图来绘制一个足球
C#生成缩略图
/**/ /// <summary> /// 生成缩略图 /// </summary> /// <param name="originalImagePath">源图路径(物理路径)</param> /// <param name="thumbnailPath">缩略图路径(物理路径)</param> /// <param name="width">缩略图宽度</param> /// <param name="height">缩略图高度</param> /// <param name="mode">生成缩略图的方式</param> public static void MakeThumbnail(string originalImagePath, string thumbnailPath, int width, int height, string mode,string type) { System.Drawing.Image originalImage = System.Drawing.Image.FromFile(originalImagePath);
jack.yang
2025/04/05
510
C# 图片RGB处理判断
方法需要传入新的图片对象(Bitmap),原图的标准RGB平均值,新图的RGB颜色,新图和原图的RGB相差偏移量。 返回新图的RGB平均值是否在原图的RGB平均值偏移量之内。
Echo_Wish
2023/11/30
2450
模拟退火算法实例(c++ 与 c# 实现)
此片文章主要参考CSDN博主里头的一篇文章, 将自己的理解写下来,以方便后期的查阅。
用户2434869
2018/09/12
2.3K0
C# 生成指定图片的缩略图
场景1:培训系统中,在上传课件培训视频素材的功能,我们会上传课程封面图片,将来会在课程详情内容中在指定的位置输出。
初九之潜龙勿用
2024/06/20
1840
如何识别出轮廓准确的长和宽
对于这样 的轮廓分析,标明出来的1和2明显是错误的。但是除了minAreaRect之外,已经没有更解近一步的方法。也尝试首先对轮廓进行凸包处理,再查找外接矩形,效果同样不好。
OpenCV学堂
2018/09/29
2.1K0
如何识别出轮廓准确的长和宽
可视化拖拽组件库一些技术要点原理分析(二)
本文是对《可视化拖拽组件库一些技术要点原理分析》的补充。上一篇文章主要讲解了以下几个功能点:
谭光志
2021/01/20
1.4K0
可视化拖拽组件库一些技术要点原理分析(二)
C#图片处理示例(裁剪,缩放,清晰度,水印)
原创文章,转载必需注明出处:http://www.cnblogs.com/wu-jian/
跟着阿笨一起玩NET
2018/09/19
2.4K0
C#图片处理示例(裁剪,缩放,清晰度,水印)
C# 给图片添加文字水印
在某些应用项目(如电子档案信息管理)中,查看电子图片信息是经常使用到的功能,此时我们就需要给显示在浏览器中的图片添加文字水印版权或提示信息。增加水印主要起到如下作用:
初九之潜龙勿用
2024/06/20
1420
给图片添加文字水印
水印图片透明度设置和旋转(下面这段代码和上面一段代码都位于Watermark类中,因为代码量较大,所以分开来展示):
雪飞鸿
2018/09/05
3.2K0
给图片添加文字水印
win2d CanvasCommandList 使用方法 直接显示相对移动复用命令与 CanvasRenderTarget 的区别特效
在 win2d 可以通过 CanvasCommandList 定义很多命令,这些命令不是直接渲染到 Canvas 上,而是作为一个缓存。可以将 CanvasCommandList 作为输入,输入到其他的特效或参与其他的渲染。 特别在用 Win2d 写一个渲染框架的时候,通过 CanvasCommandList 可以实现内部元素容器的偏移和统一的效果
林德熙
2019/03/13
5110
win2d CanvasCommandList 使用方法
            直接显示相对移动复用命令与 CanvasRenderTarget 的区别特效
(三十四)c#Winform自定义控件-Tab页
GitHub:https://github.com/kwwwvagaa/NetWinformControl
冰封一夏
2019/09/11
1.6K0
(三十四)c#Winform自定义控件-Tab页
一个自定义的C#图片处理类,用于生成缩略图信息
这个C#类专门用于图片缩略图处理,除了可以将图片缩小成指定大小的缩略图外,还可以用于给图片打上图片水印,
用户7108768
2021/11/02
5550
C# OpenCV | 手把手教你用传统方法实现骰子识别
这个案例是2018年初我给别人做的一个小项目,当时还没有现在这么多可以即拿即用的目标检测网络(比如SSD/Yolo等),所以当时是用传统的图像处理方法实现的。后来我的TensorFlow视频教程中也拿它来做目标检测案例讲解过:
Color Space
2022/02/08
1.2K0
C# OpenCV | 手把手教你用传统方法实现骰子识别
C# 图片处理生成缩略图
缩略图通常是将图片内容进行一定的缩小展现,或裁剪展现,主要有两个目的,一是提供一定的预览功能,二是节省屏幕展示空间、节省流量。 在网站中我们通常运用在商品的列表,比如商城、图书、新闻等等列表的图片。在C#中我们如何生成缩略图呢,也就是缩小图片,下面我们来看一看如何缩小图片。
SpringSun
2022/05/26
9170
代码挑战画 魔法圣诞树
2022年圣诞节到来啦,很高兴这次我们又能一起度过~ 本文会基于C# GDI+技术 实现魔法圣诞树效果!源码和素材在文末全部都有!
天罡gg
2022/12/25
1.3K0
代码挑战画 魔法圣诞树
OpenCV 应用边缘检测与霍夫线变换实现旋转角度检测
使用opencv的图片旋转功能,把它旋转一个角度,旋转方法参考: http://blog.csdn.net/chaipp0607/article/details/63263347
chaibubble
2022/05/07
9900
OpenCV 应用边缘检测与霍夫线变换实现旋转角度检测
相关推荐
win2d 画出好看的图形
更多 >
领券
💥开发者 MCP广场重磅上线!
精选全网热门MCP server,让你的AI更好用 🚀
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验