Не добавляет пиксель на картинку - C#
Формулировка задачи:
Есть такой код, он должен добавлять пиксель на картинку, но по какой-то неведомой причине он этого не делает, объясните пожалуйста в чём проблема.
Листинг программы
- DirectoryInfo dirIn = new DirectoryInfo(@"C:\Users\Илья\Desktop\test1");
- foreach (var item in dirIn.GetFiles())
- {
- Console.WriteLine(item.Name);
- Bitmap bitm = new Bitmap(item.FullName);
- bitm.SetPixel(1, 1, Color.Red);
- bitm.Save(item.Name);
- Console.WriteLine("Изменён");
- }
Решение задачи: «Не добавляет пиксель на картинку»
textual
Листинг программы
- using System;
- using System.Drawing;
- using System.Drawing.Imaging;
- using System.IO;
- using System.Linq;
- namespace ConsoleApp2
- {
- class Program
- {
- static void Main(string[] args)
- {
- string path = @"D:\Temp\Nya";
- DirectoryInfo dirIn = new DirectoryInfo(path);
- foreach (var item in dirIn.GetFiles())
- {
- try
- {
- var file = Path.Combine(path, item.FullName);
- Console.WriteLine(item.Name);
- var encoder = ImageCodecInfo.GetImageDecoders().FirstOrDefault(x => x.FormatID == ImageFormat.Jpeg.Guid);
- var encoderParams = new EncoderParameters(1);
- encoderParams.Param[0] = new EncoderParameter(Encoder.Quality, 100L);
- using (var memory = new MemoryStream())
- {
- using (var img = new Bitmap(file))
- {
- img.SetPixel(1, 1, Color.Red);
- if (img.RawFormat.Guid == ImageFormat.Jpeg.Guid)
- img.Save(memory, encoder, encoderParams);
- else
- img.Save(memory, img.RawFormat);
- }
- File.WriteAllBytes(file, memory.ToArray());
- }
- Console.WriteLine("Изменён");
- }
- catch (Exception ex)
- {
- Console.WriteLine(ex);
- }
- }
- }
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д