Mohanapriya R Mohanapriya R
Updated date Feb 12, 2024
In this article, we will explore the world of coding and images with this C# tutorial. Learn how to turn pictures into text using a simple program.

The Pixel Puzzle:

Images, at their core, are made up of pixels. Each pixel holds information about color and intensity, forming the building blocks of an image. To convert an image to text, we need to decipher these pixels and translate them into characters.

C# Code Implementation:

Let's begin by loading an image in C# and extracting pixel information. We'll use the popular .NET framework for this task.

using System;
using System.Drawing;

class ImageToStringConverter
{
    static void Main()
    {
        // Load the image
        Bitmap image = new Bitmap("example.jpg");

        // Extract pixel information
        string result = ConvertImageToString(image);

        // Display the result
        Console.WriteLine(result);
    }

    static string ConvertImageToString(Bitmap image)
    {
        // Placeholder for the result
        string result = "";

        // Iterate through each pixel
        for (int y = 0; y < image.Height; y++)
        {
            for (int x = 0; x < image.Width; x++)
            {
                // Get the color of the current pixel
                Color pixelColor = image.GetPixel(x, y);

                // Convert the color to a character (for simplicity, using grayscale)
                char character = ConvertColorToChar(pixelColor);

                // Append the character to the result
                result += character;
            }

            // Add a newline after each row
            result += Environment.NewLine;
        }

        return result;
    }

    static char ConvertColorToChar(Color color)
    {
        // Convert color to grayscale
        int grayValue = (int)(color.R * 0.3 + color.G * 0.59 + color.B * 0.11);

        // Map grayscale value to a character
        char[] characters = { ' ', '.', ':', '-', '=', '+', '*', '#', '%', '8', '@' };
        int index = grayValue * (characters.Length - 1) / 255;

        return characters[index];
    }
}

Output:

The output of this program will be a representation of the image using ASCII characters, where each character corresponds to a pixel's intensity.

                                +*==***+++===-:,.:                       
                      .::.,.,..,,,:,.  .,,::-=*%@B@#                   
             ,,:--=-:-::.-:----:.,..      .::--%B@#@@BB                  
          ,,=i+=-:,:-:....,,...,.,-:,  ,,,.,.::-=*BBB@@#                 
         ,,::,::..,...,......,,,:::,.,,,,.,.:.:..,.-=BBB@                 
        =-.:.,............,,,,.,,::,:,,,,..,.:..:,.,.:*B@                 
        ::.,::,:::...,.......,.,,::::,::,,........,..,:*B@                
       =-.,:,...,,.,.,..........,.,.,,,.,.,,,,,,,,::..,-B@                
       =-.,....,......,.............,..........,.,..,-BB                
       --......,.,....,.......,,....,..,.,.,.,..,.....-BB                
        -.......,,,.,.,,.,.....,.......,..,...........iB#                
         ,.,..............,,,......................,,-BB                
          ,,,.,,,,.,,.,.,.,,.,............,.,.,,..,,-=B@                
           ,..,,.,,,,,,.,.,,.,.,.,........,.,,,,,...,=BB                
           .,.,,,.,..,.,,.,,.,....,..,....,,.,.,...,.,*BB                
            ,.,,.,.,.,.,,.,,.,.,....,.,..,.,.,.,,..,.,B@#                
             ,.,..,.,,.,,.,,.,,,.,,,,.,,,,,.,.,.,,,.-%B#                
              ..,.,,.,.,,.,.,,.,,,,,,,,,,,,,,,,.,,.,:%BB                
              .,.,.,.,.,,.,.,,.,,.,,,,,,,,,,.,,.,.,.,:BBB                
              .,.,,.,.,,.,.,,.,,,,,,,,,,,,,,,,.,.,.,,-BB@                
              .,.,.,.,,.,,.,,.,,.,,,,,,,,,,,,,.,.,..,*BBB                
              .,.,.,.,,.,.,.,,.,,.,,,,,,,,,,,,,.,,.,.*BBB                
               ,.,.,.,.,,.,.,.,,.,,,,,,,,,,,,,,,,.,.,=BBB                
               .,.,.,.,,.,.,.,.,,.,,,,,,,,,,,,,,,.,.:BBB                
               .,.,.,.,,.,.,.,.,,.,,,,,,,,,,,,,,,.,.,B@B                
               .,.,.,.,,.,.,.,.,,.,,,,,,,,,,,,,,,.,.,B@B                
               .,.,.,.,,.,.,.,.,,.,,,,,,,,,,,,,,.,.,*BBB                
               ,.,.,.,.,,.,.,.,.,,.,,,,,,,,,,,,,.,.,.B@B                
               .,.,.,.,,.,.,.,.,,.,,,,,,,,,,,,,,.,.,.BBB                
                ,.,.,.,.,,.,.,.,,.,,,,,,,,,,,,,,.,,.-BBB                
                .,.,.,.,,.,.,.,.,,.,,,,,,,,,,,,,,.,,.BBB                
                ,.,.,.,.,,.,.,.,,.,,,,,,,,,,,,,,.,,-BBB                
                ,.,.,

Comments (0)

There are no comments. Be the first to comment!!!