2014-01-27 5 views
1

У меня есть приложение WPF и C#. который захватывает изображения и сохраняет в файл (*. jpg). У меня есть путь к изображению, и я хочу повернуть изображение, сохраненное в файле, через код C#. и сохранить изображение с поворотом в том же файле.Как повернуть изображение в файле в приложении C# и WPF

Как я могу это сделать?

ответ

4

Используйте метод rotate flip.

т.д .:

 Bitmap bitmap1 = (Bitmap)Bitmap.FromFile(@"C:\test.jpg"); 
     bitmap1.RotateFlip(RotateFlipType.Rotate180FlipNone); 
     bitmap1.Save(@"C:\Users\Public\Documents\test rotated.jpg"); 
+0

То не работает. Сожалею! –

+0

Добавить ссылку 'System.Drawing' для проекта. добавьте 'using System.Drawing; ', а затем добавьте выше код. – Sameer

+0

'bitmap1.Save (@ "C: \ Documents and Settings \" + @ "Все пользователи \ Documents \ My Music \ music.jpg"); ' добавьте это в код, работающий Bro !!! спасибо Большое –

0

вы можете использовать мой метод:

BitmapImage rotateImage(string filename,int angle) 
    { 
     WIA.ImageFile img = new WIA.ImageFile(); 
     img.LoadFile(filename); 

     WIA.ImageProcess IP = new WIA.ImageProcess(); 

     Object ix1 = (Object)"RotateFlip"; 
     WIA.FilterInfo fi1 = IP.FilterInfos.get_Item(ref ix1); 
     IP.Filters.Add(fi1.FilterID, 0); 

     Object p1 = (Object)"RotationAngle"; 
     Object pv1 = (Object)angle; 
     IP.Filters[1].Properties.get_Item(ref p1).set_Value(ref pv1); 

     img = IP.Apply(img); 

     File.Delete(filename); 
     img.SaveFile(filename); 


     BitmapImage imagetemp = new BitmapImage(); 
     using (var stream = new FileStream(filename, FileMode.Open, FileAccess.Read, FileShare.Read)) 
     { 
      imagetemp.BeginInit(); 
      imagetemp.CacheOption = BitmapCacheOption.OnLoad; 
      imagetemp.StreamSource = stream; 
      imagetemp.EndInit(); 
     } 

     return imagetemp; 
    } 

использование:

 string filename = System.AppDomain.CurrentDomain.BaseDirectory + "4.jpg"; 

     image.Source = rotateImage(filename,90); 
Смежные вопросы