Definitely has something to do with Aliasing. But i have not programmed anything like this.
On 13 February 2010 02:58, [email protected] <[email protected]> wrote: > Thanks for reply > > code as per below > > > using System; > using System.Data; > using System.Configuration; > using System.Collections; > using System.Web; > using System.Web.Security; > using System.Web.UI; > using System.Web.UI.WebControls; > using System.Web.UI.WebControls.WebParts; > using System.Web.UI.HtmlControls; > using System.IO; > using System.Drawing; > using System.Drawing.Imaging; > using System.Drawing.Text; > using System.Drawing.Drawing2D; > > public partial class rotateimage : System.Web.UI.Page > { > protected void Page_Load(object sender, EventArgs e) > { > String imagepath = pathstr() + "Images\\sellimage.jpg"; > Bitmap bmp_conv_dpi = new Bitmap(imagepath); > System.Drawing.Image i = > Rotateimage((System.Drawing.Image)bmp_conv_dpi,double.Parse( > queryStringValue(Request,"angle", > 0))); > MemoryStream ms = new MemoryStream(); > i.Save(ms, ImageFormat.Png); > Response.ContentType = "image/PNG"; > ms.WriteTo(Response.OutputStream); > Response.End(); > } > public string pathstr() > { > return System.AppDomain.CurrentDomain.BaseDirectory; > } > public static System.Drawing.Image > Rotateimage(System.Drawing.Image image, double angle) > { > > if (image == null) > { > throw new ArgumentNullException("image"); > } > float oldWidth = (float)image.Width; > float oldHeight = (float)image.Height; > > // Ensure angle is [0, 360) > angle = angle % 360f; > if (angle < 0.0) > { > angle += 360f; > } > > PointF[] corners = new PointF[4]; > // corners, clockwise from upper left > // corners[0] is origin > corners[1].X = oldWidth; > corners[2].X = oldWidth; > corners[2].Y = oldHeight; > corners[3].Y = oldHeight; > > // rotate about origin > Matrix m = new Matrix(); > m.Rotate((float)angle); > m.TransformPoints(corners); > > // compute bounds of transformed corners from largest and > smallest x and y values > double maxX = Double.MinValue; > double maxY = Double.MinValue; > double minX = Double.MaxValue; > double minY = Double.MaxValue; > foreach (PointF p in corners) > { > maxX = Math.Max(maxX, p.X); > minX = Math.Min(minX, p.X); > maxY = Math.Max(maxY, p.Y); > minY = Math.Min(minY, p.Y); > } > double newWidth = Math.Ceiling(maxX - minX); > double newHeight = Math.Ceiling(maxY - minY); > > Bitmap rotatedBmp = new Bitmap((int)newWidth, (int)newHeight); > using (Graphics g = Graphics.FromImage(rotatedBmp)) > { > // center of new image > PointF center = new PointF((float)(newWidth / 2), (float) > (newHeight / 2)); > g.SmoothingMode = > System.Drawing.Drawing2D.SmoothingMode.AntiAlias; > // position to draw old image to center it in new one > PointF position = new PointF(center.X - oldWidth / 2, > center.Y - oldHeight / 2); > > // rotate about center and draw > m.Reset(); > m.RotateAt((float)angle, center); > g.Transform = m; > g.DrawImage(image, position); > m.Reset(); > > > g.InterpolationMode = > System.Drawing.Drawing2D.InterpolationMode.Bicubic; > } > > > > > return rotatedBmp; > } > public static string queryStringValue(HttpRequest wr, string key, > object defaultValue) > { > try > { > return wr.QueryString[key].ToString(); > } > catch (Exception) > { } > return defaultValue.ToString(); > } > } > > > On Feb 11, 12:04 pm, Raghupathi Kamuni <[email protected]> wrote: > > Show the relevant code ! > > > > On Thu, Feb 11, 2010 at 12:20 PM, [email protected] > > <[email protected]>wrote: > > > > > not it is not spam , it's urgent to solve > > > > > On Feb 10, 5:49 pm, Processor Devil <[email protected]> wrote: > > > > spam? > > > > > > 2010/2/10 [email protected] <[email protected]> > > > > > > > please check url below and find how the image distorts at edges on > > > > > giving rotation angles like 5,10,50 etc. however the edges are > smooth > > > > > and crisp on 45 degree > > > > > > >http://cybersurf.in/rotationtesting.aspx > > > > > > > please provide solution ASAP. > -- Charles A. Lopez [email protected] Registered Microsoft Partner New York City, NY I'm running on Windows 7 Build 7100 Quality Software Works
