保存在磁盘下的图片,读到程序里再实现对其任意角度的旋转,怎样做?请能人指点!!

解决方案 »

  1.   

    我在D盘下有个BMP---23.bmp,读取到程序里,再对其进行任意角度的旋转,能说详细些吗?
      

  2.   

    <script>
    function rotateImage(HTMLControlID) {  
    if(window.navigator.userAgent.indexOf('MSIE') > -1)
    {
    if(n!=1)
    {
    k+=1;
    }
    var degree=k%4*90;

    //处理IE浏览器
           var imageToRotate = document.getElementById(HTMLControlID);       imageToRotate.style.filter= "progid:DXImageTransform.Microsoft.Matrix(sizingMethod='auto expand')";  
          var deg2radians = Math.PI * 2 / 360; 
           var degreeToRotate =degree // 旋转度数;  
        rad = degreeToRotate * deg2radians ;         
        costheta = Math.cos(rad);          
        sintheta = Math.sin(rad);    
         
        imageToRotate.filters.item(0).M11 = costheta;          
        imageToRotate.filters.item(0).M12 = -sintheta;         
        imageToRotate.filters.item(0).M21 = sintheta;          
        imageToRotate.filters.item(0).M22 = costheta;  
     
    var w=document.getElementById(HTMLControlID).width;
    var h=document.getElementById(HTMLControlID).height;

    document.getElementById(HTMLControlID).width=h;
    document.getElementById(HTMLControlID).height=w;
    n+=1;
    if(n<2)
    {
    rotateImage(HTMLControlID);
    }
    else
    {
    n=0;
    }
    }       
    }
    </script>
    <A href="javascript:rotateImage('img1);" title='旋转'><img src='images\\旋转.png' border=0></A>利用js脚本实现。
      

  3.   


    /// <summary>
            /// 任意角度旋转
            /// </summary>
            /// <param name="bmp">原始图Bitmap</param>
            /// <param name="angle">旋转角度</param>
            /// <param name="bkColor">背景色</param>
            /// <returns>输出Bitmap</returns>
            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;
            }
    参考:http://blog.csdn.net/ki1381/archive/2007/01/28/1495943.aspx
      

  4.   

    Images类里面有这个方法,去MSDN里看看吧