Я сделал несколько поисков, и я не могу найти какую-либо функцию, которая делает то, что я хочу, чтобы сделать это.
У меня есть файл изображения отсканированного документа с текстом, но документ повернут на несколько градусов, поэтому я хочу его повернуть, чтобы текст был встроен друг в друга.
В идеальном мире его должна быть функция, выполняющая это автоматически, но я не могу найти что-либо и то, что я понимаю, чтобы заставить его работать автоматически, чтобы он был каким-то анализом изображения, и я думаю, что это большая вещь. /p >
Но затем я сделал инструмент для поворота изображения на веб-сайте вручную, но теперь мне нужна функция, чтобы сохранить поворот в файл изображения.
Кажется, что это несколько разных методов, но никто не проверял, что я хочу.
Функция я обнаружила, что работает почти так, как я хочу:
public static Bitmap RotateImg(Bitmap bmp, float angle, Color bkColor) {
int w = bmp.Width;
int h = bmp.Height;
PixelFormat pf = default(PixelFormat);
if (bkColor == Color.Transparent)
{
pf = PixelFormat.Format32bppArgb;
}
else
{
pf = bmp.PixelFormat;
}
Bitmap tempImg = new Bitmap(w, h, pf);
Graphics g = Graphics.FromImage(tempImg);
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();
//Using System.Drawing.Drawing2D.Matrix class
mtrx.Rotate(angle);
RectangleF rct = path.GetBounds(mtrx);
Bitmap newImg = new Bitmap(Convert.ToInt32(rct.Width), Convert.ToInt32(rct.Height), pf);
g = Graphics.FromImage(newImg);
g.Clear(bkColor);
g.TranslateTransform(-rct.X, -rct.Y);
g.RotateTransform(angle);
g.InterpolationMode = InterpolationMode.HighQualityBilinear;
g.DrawImageUnscaled(tempImg, 0, 0);
g.Dispose();
tempImg.Dispose();
return newImg; }
Но это не меняет высоту и ширину файла изображения, поэтому файл изображения имеет тот же размер, но изображение "объект" масштабируется и поворачивается.
Любая идея, как я могу сделать это хорошо?
Ответ Я нашел решение, которое работало с моим изображением, которое имеет разрешение 300 на старом ответе здесь.