Отрисовка изображения попиксельно из бинарного файла - 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;
}
}
}