Отрисовка изображения попиксельно из бинарного файла - C#
Формулировка задачи:
Здравствуйте! Очень нужна ваша помощь, мучаюсь с этой отрисовкой уже не первый день - всё не так срабатывает.
Имеется текстовый файл, в котором черно-белая картинка представлена нулями и единицами (приведен во вложении). Нужно считать этот файл и отрисовать его в переменную структуры Bitmap, которая потом выводится в picturebox.
Я пробовал это сделать вот так:
Но в этом случае оно перекашивает картинку каким-то непонятным образом. Пробовал использовать SetPixel ещё по-разному, через матрицу и пр., но в остальных случаях он её отрисовывает как-то наполовину.
using (StreamReader sr = File.OpenText(@"C:\Users\admin\Desktop\тест.txt")) { while (sr.Peek() != -1) { for (int y = 0; y < height; y++) { for (int x = 0; x < height; x++) { char c = (char)sr.Read(); if (c == '0') image.SetPixel(x, y, Color.White); else if (c == '1') image.SetPixel(x, y, Color.Black); } } } }
Решение задачи: «Отрисовка изображения попиксельно из бинарного файла»
textual
Листинг программы
using System; using System.ComponentModel; using System.Drawing; using System.IO; using System.Windows.Forms; namespace WindowsFormsApplication339 { public partial class Form1 : Form { public Form1() { InitializeComponent(); BackgroundImage = GetBitmap("c:\\test.txt"); BackgroundImageLayout = ImageLayout.Center; } Bitmap GetBitmap(string filePath) { var lines = File.ReadAllLines(filePath); var res = new Bitmap(lines[0].Length, lines.Length); for (int y = 0; y < res.Height; y++) for (int x = 0; x < res.Width; x++) res.SetPixel(x, y, lines[y][x] == '1' ? Color.White : Color.Black); return res; } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д