var sss = project.Variables["directoriya_proecta"].Value+""+project.Variables["a"].Value+"";
int size = 30;
Bitmap bmp = new Bitmap(""+project.Variables["fotopath"].Value+"");
Bitmap bm = new Bitmap(bmp.Width, bmp.Height - size);
for (int i = 0; i < bmp.Width; i++)
{
for (int j = 0; j < bmp.Height - size; j++)
bm.SetPixel(i, j, bmp.GetPixel(i, j));
}
bm.Save(sss+"\\"+project.Variables["random"].Value+".jpg");
bmp.Dispose();
bm.Dispose();
System.IO.File.Delete(project.Variables["fotopath"].Value);
Что это за переменые 1)directoriya_proecta 2)a 3)fotopath 4)random. За что они отвечают?Я так резал
Код:var sss = project.Variables["directoriya_proecta"].Value+""+project.Variables["a"].Value+""; int size = 30; Bitmap bmp = new Bitmap(""+project.Variables["fotopath"].Value+""); Bitmap bm = new Bitmap(bmp.Width, bmp.Height - size); for (int i = 0; i < bmp.Width; i++) { for (int j = 0; j < bmp.Height - size; j++) bm.SetPixel(i, j, bmp.GetPixel(i, j)); } bm.Save(sss+"\\"+project.Variables["random"].Value+".jpg"); bmp.Dispose(); bm.Dispose(); System.IO.File.Delete(project.Variables["fotopath"].Value);
//берет путь к фото, обрезает со всех сторон по r_N пикселей,заменяя на первоначальный файл
string imagePath = project.Variables["path"].Value;
int left = Convert.ToInt32(project.Variables["r_1"].Value);
int top = Convert.ToInt32(project.Variables["r_2"].Value);
int right = Convert.ToInt32(project.Variables["r_3"].Value);
int bottom = Convert.ToInt32(project.Variables["r_4"].Value);
Image imgNew;
using(Image img = Image.FromFile(imagePath)){
imgNew = ((Bitmap)img).Clone(new Rectangle(left, top, img.Width - right - left, img.Height - bottom - top),img.PixelFormat);
}
imgNew.Save(imagePath);
Нужно обрезать с низу логотип сайта 15%-20%. Изображение разных размеров. Я нашёл выход через скрипты фотошопа, но хотелось всё-таки вариант в зенке на c#.Можно обрезать изображение с 4х сторон этим кодом :
Код://берет путь к фото, обрезает со всех сторон по r_N пикселей,заменяя на первоначальный файл string imagePath = project.Variables["path"].Value; int left = Convert.ToInt32(project.Variables["r_1"].Value); int top = Convert.ToInt32(project.Variables["r_2"].Value); int right = Convert.ToInt32(project.Variables["r_3"].Value); int bottom = Convert.ToInt32(project.Variables["r_4"].Value); Image imgNew; using(Image img = Image.FromFile(imagePath)){ imgNew = ((Bitmap)img).Clone(new Rectangle(left, top, img.Width - right - left, img.Height - bottom - top),img.PixelFormat); } imgNew.Save(imagePath);
берите размер и умножайте его на 0.15-0.2 - будет кол-во пикселей, которое надо обрезать)Нужно обрезать с низу логотип сайта 15%-20%. Изображение разных размеров. Я нашёл выход через скрипты фотошопа, но хотелось всё-таки вариант в зенке на c#.
будте добры скрин как вы это делаете, в фотошопе у меня не получается обрезать только с одной стороны.Нужно обрезать с низу логотип сайта 15%-20%. Изображение разных размеров. Я нашёл выход через скрипты фотошопа, но хотелось всё-таки вариант в зенке на c#.
Нужно обрезать с низу логотип сайта 15%-20%. Изображение разных размеров. Я нашёл выход через скрипты фотошопа, но хотелось всё-таки вариант в зенке на c#.
double obr = 0.85;
Bitmap image1 = new Bitmap(Image.FromFile(@"D:\22.jpg"));
Image img = new Bitmap((image1.Width), Convert.ToInt32(image1.Height * obr));
Graphics g = Graphics.FromImage(img);
g.DrawImage(image1, new Point(0, 0));
img.Save(@"D:\33.jpg", System.Drawing.Imaging.ImageFormat.Jpeg);
Давно было, уже ничего не сохранилось, нужно записать скрипт на одном фото, а после повторить на всех остальных. Это не очень сложно в ютубе полно видео как это сделатьбудте добры скрин как вы это делаете, в фотошопе у меня не получается обрезать только с одной стороны.
прокомментируйте код пожалуйстаКод:double obr = 0.85; Bitmap image1 = new Bitmap(Image.FromFile(@"D:\22.jpg")); Image img = new Bitmap((image1.Width), Convert.ToInt32(image1.Height * obr)); Graphics g = Graphics.FromImage(img); g.DrawImage(image1, new Point(0, 0)); img.Save(@"D:\33.jpg", System.Drawing.Imaging.ImageFormat.Jpeg);
прокомментируйте код пожалуйста
double obr = 0.85;
Bitmap image1 = new Bitmap(Image.FromFile(@"D:\22.jpg"));
Image img = new Bitmap((image1.Width), Convert.ToInt32(image1.Height * obr));
Graphics g = Graphics.FromImage(img);
g.DrawImage(image1, new Point(0, 0));
img.Save(@"D:\33.jpg", System.Drawing.Imaging.ImageFormat.Jpeg);
прокомментируйте код пожалуйста
double obr = 0.85; //
Bitmap image1 = new Bitmap(Image.FromFile(@"D:\22.jpg")); // Фото исходник
Image img = new Bitmap((image1.Width), Convert.ToInt32(image1.Height * obr)); // Новое пустое изобр. с размерами ширины как у исходника и обрезанной высотой на 15%
Graphics g = Graphics.FromImage(img);
g.DrawImage(image1, new Point(0, 0)); // Прорисовка исходника в пустое начиная с 0,0 координат (вставляет исходник и обрезает снизу на 15%, так как размеры img < image1)
img.Save(@"D:\33.jpg", System.Drawing.Imaging.ImageFormat.Jpeg); // Сохранение изобр. 33.jpg на диск D:
как в этом сниппете обрезку сверху сделать?)Пред. сообщение случайно отправил, редактировать не могу!Код:double obr = 0.85; // Bitmap image1 = new Bitmap(Image.FromFile(@"D:\22.jpg")); // Фото исходник Image img = new Bitmap((image1.Width), Convert.ToInt32(image1.Height * obr)); // Новое пустое изобр. с размерами ширины как у исходника и обрезанной высотой на 15% Graphics g = Graphics.FromImage(img); g.DrawImage(image1, new Point(0, 0)); // Прорисовка исходника в пустое начиная с 0,0 координат (вставляет исходник и обрезает снизу на 15%, так как размеры img < image1) img.Save(@"D:\33.jpg", System.Drawing.Imaging.ImageFormat.Jpeg); // Сохранение изобр. 33.jpg на диск D:
А просто через кубики теперь не кашерно? Поворот на 180->обрезать сверху->обратно на 180.хотелось всё-таки вариант в зенке на c#.
Не кашерно убивать жесткий диск несколькими циклами перезаписи для одной картинки,А просто через кубики теперь не кашерно? Поворот на 180->обрезать сверху->обратно на 180.
На практике реально Xn Convert удобнее и гибче
Можно обрезать изображение с 4х сторон этим кодом :
Код://берет путь к фото, обрезает со всех сторон по r_N пикселей,заменяя на первоначальный файл string imagePath = project.Variables["path"].Value; int left = Convert.ToInt32(project.Variables["r_1"].Value); int top = Convert.ToInt32(project.Variables["r_2"].Value); int right = Convert.ToInt32(project.Variables["r_3"].Value); int bottom = Convert.ToInt32(project.Variables["r_4"].Value); Image imgNew; using(Image img = Image.FromFile(imagePath)){ imgNew = ((Bitmap)img).Clone(new Rectangle(left, top, img.Width - right - left, img.Height - bottom - top),img.PixelFormat); } imgNew.Save(imagePath);
imgNew.Save(imagePath);
//Заменяем на
imgNew.Save(imagePath, System.Drawing.Imaging.ImageFormat.Jpeg);