Не добавляет пиксель на картинку - 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);
                }
            }
        }
    }
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 4.167 из 5
Похожие ответы