Как сделать так что бы программа по конвертации массива картинок заработала?
using System;
using System.IO;
using System.Drawing;
using System.Security.Cryptography.X509Certificates;
namespace ConsoleApp13
{
class Program
{
static void Main(string[] args)
{
string[] files = Directory.GetFiles(@"C:\SomeFolder", "*.JPG", SearchOption.AllDirectories);
Bitmap[] bmpArr = new Bitmap[files.Length];
for (int i = 0; i < bmpArr.Length; i++)
{
bmpArr[i] = new Bitmap(files[i]);
}
Image RotateImage(Bitmap[] bmpArr)
{
var img = new Bitmap(bmpArr);
// using (Graphics gfx = Graphics.FromImage(bmpArr))
// {
// gfx.Clear(Color.White);
// gfx.DrawBitmap(img, 0, 0, img.Width, img.Height);
// }
img.RotateFlip(RotateFlipType.Rotate90FlipNone);
return img;
}
RotateImage(bmpArr);
}
}
}
Ответы (2 шт):
Автор решения: Alexander Petrov
→ Ссылка
Просто проходим циклом по файлам, создаём объект Bitmap и поворачиваем изображение вызовом метода RotateFlip.
Методом Save повёрнутое изображение сохраняется. В данном случае по тому же пути, то есть старое изображение затрётся. Измените путь при необходимости.
Если для какой-то цели нужен массив, то раскомментируйте строки с ним.
string[] files = Directory.GetFiles(@"C:\SomeFolder", "*.JPG", SearchOption.AllDirectories);
Bitmap[] bitmaps = new Bitmap[files.Length];
for (int i = 0; i < files.Length; i++)
{
var bitmap = new Bitmap(files[i]);
bitmaps[i] = bitmap;
bitmap.RotateFlip(RotateFlipType.Rotate90FlipNone);
bitmap.Save(files[i]);
}
Если объекты Bitmap в дальнейшем не нужны для какой-либо цели, то нет смысла помещать их в массив. И нужно освободить занимаемые ими ресурсы.
string[] files = Directory.GetFiles(@"C:\SomeFolder", "*.JPG", SearchOption.AllDirectories);
for (int i = 0; i < files.Length; i++)
{
using (var bitmap = new Bitmap(files[i]))
{
bitmap.RotateFlip(RotateFlipType.Rotate90FlipNone);
bitmap.Save(files[i]);
}
}
Автор решения: opal_tim
→ Ссылка
foreach (Image image in Directory
.GetFiles(@"C:\SomeFolder", "*.jpg", SearchOption.AllDirectories)
.Select(Bitmap.FromFile))
{
image.RotateFlip(RotateFlipType.Rotate90FlipNone);
image.Save("какая то ссылка дериктории");
};