首页 > 任意角度旋转图片

任意角度旋转图片

       ///



        /// 任意角度旋转

        ///


        /// 原始图Bitmap

        /// 旋转角度

        /// 背景色

        /// 输出Bitmap

        public static Bitmap KiRotate(Bitmap bmp, float angle, Color bkColor)

        {

            int w = bmp.Width + 2;

            int h = bmp.Height + 2;

            PixelFormat pf;

            if (bkColor == Color.Transparent)

            {

                pf = PixelFormat.Format32bppArgb;

            }

            else

            {

                pf = bmp.PixelFormat;

            }

            Bitmap tmp = new Bitmap(w, h, pf);

            Graphics g = Graphics.FromImage(tmp);

            g.Clear(bkColor);

            g.DrawImageUnscaled(bmp, 1, 1);

            g.Dispose();

            GraphicsPath path = new GraphicsPath();

            path.AddRectangle(new RectangleF(0f, 0f, w, h));

            Matrix mtrx = new Matrix();

            mtrx.Rotate(angle);

            RectangleF rct = path.GetBounds(mtrx);

            Bitmap dst = new Bitmap((int)rct.Width, (int)rct.Height, pf);

            g = Graphics.FromImage(dst);

            g.Clear(bkColor);

            g.TranslateTransform(-rct.X, -rct.Y);

            g.RotateTransform(angle);

            g.InterpolationMode = InterpolationMode.HighQualityBilinear;

            g.DrawImageUnscaled(tmp, 0, 0);

            g.Dispose();

            tmp.Dispose();

            return dst;

        }

转载于:https://www.cnblogs.com/Allen_Jo/archive/2009/09/15/1566863.html

更多相关:

  • 有时候我们项目,在执行某个操作后,会生成一些数据结果,如报表一类的东西,我们需要对结果进行保存,甚至是生成word文档。 那么首先获取到控件快照就最基本的条件。 生成快照的静态方法类 using System; using System.Collections.Generic; using System.Drawing; using...

  • 作用批量执行sql语句 表达式.RunSQL(SQLStatement,UseTransaction) 表达式.一个代表DoCmd对象的变量。 注释:sqlstatement参数的最大长度为 32,768 个字符(而"宏"窗口中的 SQL 语句操作参数的最大长度为 256 个字符)。      官方说仅能用于Microsoft Acc...

  • 前戏:针对上一篇列出来的功能点,今天和大家分享下这个自定义的公式是怎么设计的,由于我的第一篇博客在首页被管理员移走了,大家可以点击这里来跳转,看下第一篇的目录结构。本人作为老菜鸟,和大家分享的也是一些老菜鸟的想法,大神千万别喷我.   设计背景:当初为什么要设计这个自定义的计算公式呢,原因就是,这个价格是不确定的,计算方式也是不确定的...

  • 背景 搭建一个适合公司erp业务的开发平台。 架构概要图:    流程引擎开发平台:  包含流程引擎设计器,流程管理平台,流程引擎服务。目前只使用单个数据库进行管理。  流程引擎设计器    采用silverlight进行开发,本质是对流程模型进行设计,并生成xml。包含:人工节点,自动节点,并行开始节点,并行结束节点,消息节点,文...

  • using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Xml;using System.Web; namespace BLL{    public  class XmlDoc    {       ...