Как с помощью C# обрезать картинку?

Radzhab

Client
Joined
May 23, 2014
Messages
1,500
Reaction score
1,269
Points
113
перед result.Save(@"C:\2.jpg")
 

sekoan

Client
Joined
Jan 4, 2015
Messages
219
Reaction score
93
Points
28
туда я уже вставлял, таже ошибка
 

Attachments

ssXXXss

Client
Joined
Dec 23, 2014
Messages
7,375
Reaction score
2,042
Points
113

sekoan

Client
Joined
Jan 4, 2015
Messages
219
Reaction score
93
Points
28
поставил, что то тоже самое
 

Attachments

ssXXXss

Client
Joined
Dec 23, 2014
Messages
7,375
Reaction score
2,042
Points
113
так попробуй
 

Attachments

Dmitrybyapple

Client
Joined
Feb 22, 2015
Messages
89
Reaction score
98
Points
18

rostonix

Известная личность
Joined
Dec 23, 2011
Messages
29,067
Reaction score
5,719
Points
113
вызовите result.Dispose(); в конце
 

nomarketing

Client
Joined
Nov 1, 2013
Messages
911
Reaction score
178
Points
43
вызовите result.Dispose(); в конце
Все работает, но не работает в том случае, если изобажение маленькое а координаты большие.. пишет там что то invocation.
У меня задача убрать с фотографии 20px с низу. т.е обрезать.
Как я понимаю мне нужно получить сначала координаты реальной картинки.
Потом отнять от них 20px снизу.
Как такое реализовать ? может кто посдскажет как допилить этот код ?

Code:
var img = new Bitmap(Image.FromFile(@"C:\1.jpg"));
int x1 = 10;
int x2 = 100;
int y1 = 1;
int y2 = 100;
int width = x2 - x1 + 1;
int height = y2 - y1 + 1;
var result = new Bitmap(width, height);
for (int i = x1; i <= x2; i++)
     for (int j = y1; j <= y2; j++)
          result.SetPixel(i - x1, j - y1, img.GetPixel(i, j));
   
result.Save(@"C:\2.jpg");
   
    result.Dispose();
 

nomarketing

Client
Joined
Nov 1, 2013
Messages
911
Reaction score
178
Points
43
Как получить размеры картинки в С. Может кому пригодится. Если нет изображения или оно пустое возвращает fail.
Code:
//string FileName = @"C:\1.jpg";
string FileName = project.Variables["path_to_img"].Value;
System.Drawing.Image objImage = System.Drawing.Image.FromFile(FileName);
var ImageWidth = objImage.Width.ToString();
var ImageHeight = objImage.Height.ToString();
return ImageWidth;
//return ImageHeight;
Не пойму как обрезать картинку, т.е функция обрезания работает, но если картинка меньше установленных параметров то.. нет.
Я не могу понять логику получение размеров + обрезания картинки по полученным данным (к примеру убераем 20 пикселей с низу)
 

qzen4i

Client
Joined
May 1, 2014
Messages
1,408
Reaction score
315
Points
83
а как можно обрезать картинку, на 9 частей?
 

rostonix

Известная личность
Joined
Dec 23, 2011
Messages
29,067
Reaction score
5,719
Points
113

maloibtc

Client
Joined
Apr 8, 2016
Messages
365
Reaction score
91
Points
28
А может скажишь как тебе нужно изображение обрезать?
Привет.А можно нарезать картинку 300х50 на 6 равных частей?)
 

AloneSlamer

Client
Joined
Jan 29, 2013
Messages
1,404
Reaction score
362
Points
83

Обращаем Ваше внимание на то, что данный пользователь заблокирован.
Не рекомендуем проводить с AloneSlamer какие-либо сделки.

maloibtc

Client
Joined
Apr 8, 2016
Messages
365
Reaction score
91
Points
28

Dimionix

Moderator
Joined
Apr 9, 2011
Messages
3,068
Reaction score
3,131
Points
113
  • Thank you
Reactions: maloibtc

maloibtc

Client
Joined
Apr 8, 2016
Messages
365
Reaction score
91
Points
28

Dimionix

Moderator
Joined
Apr 9, 2011
Messages
3,068
Reaction score
3,131
Points
113
  • Thank you
Reactions: maloibtc

maloibtc

Client
Joined
Apr 8, 2016
Messages
365
Reaction score
91
Points
28
Режет но как сохранить то что обрезало?
Использую этот вариант
Code:
int size = 50; // Сколько обрезать.
            Bitmap bmp = new Bitmap(@"C:\1.png"); // Загружаемый файл.
            Bitmap bm = new Bitmap(bmp.Width - size, bmp.Height);
            for (int i = 0; i < bmp.Width - size; i++)
            {
                for (int j = 0; j < bmp.Height; j++)
                    bm.SetPixel(i, j, bmp.GetPixel(i, j));
            }
            bm.Save(@"C:\resul.png"); // Сохраняемый файл.
            bmp.Dispose();
            bm.Dispose();
То что обрезает непойму куда девается,и как таким макаром вырезать все 6 картинок и сохранить
 

Dimionix

Moderator
Joined
Apr 9, 2011
Messages
3,068
Reaction score
3,131
Points
113
как таким макаром вырезать все 6 картинок и сохранить
modules.png
C#:
int w = 50;
Bitmap img = new Bitmap(project.Directory + @"\img\modules.png");
int count = img.Width / w;
Bitmap result = new Bitmap(w, img.Height);

for (int k = 0; k < count; k++) {
    for (int j = 0; j < img.Height; j++)
        for (int i = 0; i < w; i++)
            result.SetPixel(i, j, img.GetPixel((w * k) + i, j));
    result.Save(project.Directory + @"\img\" + Convert.ToString(k + 1) + ".png");
}

img.Dispose();
result.Dispose();
 

steklarul

Client
Joined
Sep 7, 2016
Messages
164
Reaction score
7
Points
18
Всем привет уважаемый вопрос скажите как вырезать по координатам некоторый части картинки (не обрезать а имена вырезать чтобы картинка осталась целое но с не большыми изминениями) Вот пример:
upload_2017-7-17_15-25-21.png

Оригинал капчи:
upload_2017-7-17_15-24-10.png
 

Attachments

Dufus111

Client
Joined
Jan 31, 2016
Messages
51
Reaction score
9
Points
8
Вообще просто:
JavaScript:
var img = new Bitmap(Image.FromFile(@"C:\1.jpg"));

int x1 = 10;
int x2 = 50;
int y1 = 10;
int y2 = 50;

int width = x2 - x1 + 1;
int height = y2 - y1 + 1;

var result = new Bitmap(width, height);

for (int i = x1; i <= x2; i++)
     for (int j = y1; j <= y2; j++)
          result.SetPixel(i - x1, j - y1, img.GetPixel(i, j));

result.Save(@"C:\2.jpg")
где (x1, y1) - координаты левой верхней точки, а (x2, y2) - координаты нижней правой точки прямоугольника старого изображения который должен стать новой картинкой.
В коде заданы вот так:
JavaScript:
int x1 = 10;
int x2 = 50;
int y1 = 10;
int y2 = 50;
Подскажите пожалуйста как вставить вместо C:\1.jpg var img = new Bitmap(Image.FromFile(@"C:\1.jpg")); свою переменную project.Variables["CSharp"].Value
пробовал так, var img = new Bitmap(Image.FromFile(@"'"+project.Variables["CSharp"].Value+"'")); ругается что путь не верен
и ещё вместо значений
int x1 = 10;
int x2 = 50;
int y1 = 10;
int y2 = 50;
то же свои перемнные они у меня уже есть внутри проекта, но их надо как то преобразовать в int

int x1 = project.Variables["x1"].Value
int x2 = project.Variables["x2"].Value
int y1 = project.Variables["y1"].Value
int y2 = project.Variables["y2"].Value

Я вообще нуб в C# помогите плиз
 

ezotonal

Client
Joined
Jan 13, 2014
Messages
821
Reaction score
232
Points
43
Подскажите пожалуйста как вставить вместо C:\1.jpg var img = new Bitmap(Image.FromFile(@"C:\1.jpg")); свою переменную project.Variables["CSharp"].Value
пробовал так, var img = new Bitmap(Image.FromFile(@"'"+project.Variables["CSharp"].Value+"'")); ругается что путь не верен
и ещё вместо значений
int x1 = 10;
int x2 = 50;
int y1 = 10;
int y2 = 50;
то же свои перемнные они у меня уже есть внутри проекта, но их надо как то преобразовать в int

int x1 = project.Variables["x1"].Value
int x2 = project.Variables["x2"].Value
int y1 = project.Variables["y1"].Value
int y2 = project.Variables["y2"].Value

Я вообще нуб в C# помогите плиз
Вот так попробуй
var img = new Bitmap(Image.FromFile(project.Variables["CSharp"].Value));
 

Users Who Are Viewing This Thread (Total: 1, Members: 0, Guests: 1)