Как обрезать фото на c#

Redsmokky

Client
Регистрация
06.10.2015
Сообщения
313
Благодарностей
195
Баллы
43
Подскажите можно сделать на c# обрезку изображения как на кубике?

2023-11-07_152655.jpg 2023-11-07_152621.jpg
 

trecho

Client
Регистрация
12.07.2018
Сообщения
171
Благодарностей
124
Баллы
43
ffmpeg -i input.png -vf "crop=w:h:x:y" output.png
ffmpeg -i input.png -vf "crop=300:400:100:200" output.png
 
  • Спасибо
Реакции: Redsmokky

Redsmokky

Client
Регистрация
06.10.2015
Сообщения
313
Благодарностей
195
Баллы
43
ffmpeg -i input.png -vf "crop=w:h:x:y" output.png
ffmpeg -i input.png -vf "crop=300:400:100:200" output.png
Спасибо, знаю этот способ, да и кубиком можно обрезать, но это не C# и много лишнего в проекте появляется из-за этих кубиков
 

Redsmokky

Client
Регистрация
06.10.2015
Сообщения
313
Благодарностей
195
Баллы
43

trecho

Client
Регистрация
12.07.2018
Сообщения
171
Благодарностей
124
Баллы
43
C#:
Bitmap src = (Bitmap)Image.FromFile("c:\\input.png");
Rectangle cropRect = new Rectangle(100, 200, 300, 400);
Bitmap target = src.Clone(cropRect, src.PixelFormat);
target.Save("c:\\output.png");
 

Redsmokky

Client
Регистрация
06.10.2015
Сообщения
313
Благодарностей
195
Баллы
43
C#:
Bitmap src = (Bitmap)Image.FromFile("c:\\input.png");
Rectangle cropRect = new Rectangle(100, 200, 300, 400);
Bitmap target = src.Clone(cropRect, src.PixelFormat);
target.Save("c:\\output.png");
Это немного не то, он со всех сторон обрезает, а в логике шаба надо оставить ширину и высоту. Впринцие можно батник создать через ffmpeg то что ты выше скинул, костыль, но лучше так чем кучу кубиков. Спасибо за советы :ay:
 

trecho

Client
Регистрация
12.07.2018
Сообщения
171
Благодарностей
124
Баллы
43
у меня что ffmpeg, что этот код, выдают идентичное изображение на выходе
 

Redsmokky

Client
Регистрация
06.10.2015
Сообщения
313
Благодарностей
195
Баллы
43
у меня что ffmpeg, что этот код, выдают идентичное изображение на выходе
Затупил, точно там же тоже кроп. Ну тогда надо будет все под кроп переделать в шаблоне. Так хоть проект станет смотрибельный
 

Redsmokky

Client
Регистрация
06.10.2015
Сообщения
313
Благодарностей
195
Баллы
43
C#:
Bitmap src = (Bitmap)Image.FromFile("c:\\input.png");
Rectangle cropRect = new Rectangle(100, 200, 300, 400);
Bitmap target = src.Clone(cropRect, src.PixelFormat);
target.Save("c:\\output.png");

Подскажи есть аналог на c# для этого кубика?

113933
 

trecho

Client
Регистрация
12.07.2018
Сообщения
171
Благодарностей
124
Баллы
43
using System.Drawing.Drawing2D;
C#:
// Load the original image
Bitmap src = (Bitmap)Image.FromFile("c:\\input.png");

// Calculate new height and width based on the percentage
int percent = 250; // for example, resize to 250% of the original size
int newWidth = (int)(src.Width * percent / 100.0);
int newHeight = (int)(src.Height * percent / 100.0);

// Create new bitmap object
Bitmap target = new Bitmap(newWidth, newHeight);

// Create graphics from the new image
using (Graphics graphics = Graphics.FromImage(target))
{
    // Set the quality of the resizing
    graphics.CompositingQuality = CompositingQuality.HighQuality;
    graphics.InterpolationMode = InterpolationMode.HighQualityBicubic;
    graphics.SmoothingMode = SmoothingMode.HighQuality;

    // Draw the new image
    graphics.DrawImage(src, 0, 0, newWidth, newHeight);
}

// Save the resized image
target.Save("c:\\output.png");
а вообще вот тут есть пример https://stackoverflow.com/questions/1922040/how-to-resize-an-image-c-sharp
 
  • Спасибо
Реакции: Redsmokky

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)