Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Drawing;
- using System.IO;
- namespace PrzetwarzanieObrazu
- {
- internal class Program
- {
- //Ścieżka do pliku obrazu wejściowego i wyjściowego
- //Plik powinien znajdować się tam gdzie .exe aplikacji
- public static string sciezkaObrazu = $@"image.jpg";
- public static string sciezkaZapisuNowegoObrazu = $@"newImage.jpg";
- public static void Main(string[] args)
- {
- Bitmap obraz = PobierzObraz(sciezkaObrazu);
- bool test = (obraz != null);
- string wynikTestu = test ? "powodzeniem" : "niepowodzeniem";
- System.Console.WriteLine($"Pobieranie obrazu: {sciezkaObrazu} zakończona {wynikTestu}");
- if (obraz == null) return;
- while (true)
- {
- Console.WriteLine("Wybierz opcję:\n" +
- "[1] Rozjaśnij obraz\n" +
- "[2] Przyciemnij obraz\n" +
- "[3] Zamien kolory\n" +
- "[0] Wyjście");
- int wybor = int.Parse(Console.ReadLine());
- switch (wybor)
- {
- case 0:
- return;
- case 1:
- RozjasnijObraz(obraz, 50);
- break;
- case 2:
- RozjasnijObraz(obraz, -50);
- break;
- case 3:
- ZamienKolory(obraz);
- break;
- default:
- Console.WriteLine("Nieprawidlowa operacja");
- break;
- }
- }
- }
- public static void RozjasnijObraz(Bitmap img, int silaRozjasnienia)
- {
- for (int i = 0; i < img.Width; i++)
- {
- for (int j = 0; j < img.Height; j++)
- {
- Color pixel = img.GetPixel(i, j);
- Color nowyPixel = Color.FromArgb(
- ZetnijWartosc(pixel.R + silaRozjasnienia),
- ZetnijWartosc(pixel.G + silaRozjasnienia),
- ZetnijWartosc(pixel.B + silaRozjasnienia)
- );
- img.SetPixel(i,j,nowyPixel);
- }
- }
- System.Console.WriteLine("Operacja zakończona");
- img.Save(sciezkaZapisuNowegoObrazu);
- }
- public static void ZamienKolory(Bitmap img)
- {
- }
- //Metoda zamienia wprowadzone przez użytkownika wartości RGB na obiekt klasy Color.
- public static Color ZamienStringNaKolor(string rgb)
- {
- int r, g, b;
- try
- {
- string[] kawalkiRGB = rgb.Split(',');
- r = int.Parse(kawalkiRGB[0]);
- g = int.Parse(kawalkiRGB[1]);
- b = int.Parse(kawalkiRGB[2]);
- return Color.FromArgb(r, g, b);
- }
- catch (Exception e)
- {
- Console.WriteLine("Nieprawidłowo wprowadzony kolor. Ustawianie koloru domyślnego (czarny).");
- return Color.Black;
- }
- }
- // Metoda zabezpiecza wykroczenie poza wartości z zakresu 0-255 (RGB), obcinając zmienne poza skali.
- public static int ZetnijWartosc(int wartosc)
- {
- if (wartosc < 0) return 0;
- if (wartosc > 255) return 255;
- return wartosc;
- }
- //Metoda pobiera obraz z podanej ścieżki i w przypadku problemu wyświetla komunikat.
- public static Bitmap PobierzObraz(string sciezkaDoPliku)
- {
- if (File.Exists(sciezkaDoPliku) == false) return null;
- try
- {
- Bitmap bitmapa = new Bitmap(sciezkaDoPliku);
- return bitmapa;
- }
- catch (Exception e)
- {
- Console.WriteLine(e.Message);
- return null;
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement