c#读/写像素颜色不工作
我正在尝试创建一个简单的图像格式,它将每个像素的argb颜色写入一个文件,我使用此代码获取并设置所有c#读/写像素颜色不工作,c#,bitmap,pixels,C#,Bitmap,Pixels,我正在尝试创建一个简单的图像格式,它将每个像素的argb颜色写入一个文件,我使用此代码获取并设置所有 List<Color> pixels = new List<Color>(); Bitmap img = new Bitmap("*imagePath*"); for (int i = 0; i < img.Width; i++) { for (int j = 0; j < img.Height; j++) { Color pixel = img.G
List<Color> pixels = new List<Color>();
Bitmap img = new Bitmap("*imagePath*");
for (int i = 0; i < img.Width; i++)
{
for (int j = 0; j < img.Height; j++)
{
Color pixel = img.GetPixel(i,j);
pixels.Add(pixel);
}
}
如果我试着读它:
OpenFileDialog op = new OpenFileDialog();
op.ShowDialog();
StreamReader sr = new StreamReader(op.FileName);
int x = 1920;
int y = 1080;
Bitmap img = new Bitmap(x,y);
for (int i = 0; i < img.Width; i++)
{
string rl = sr.ReadLine();
for (int j = 0; j < img.Height; j++)
{
img.SetPixel(i, j, Color.FromArgb(Int32.Parse(rl)));
}
}
pictureBox1.Image = img;
OpenFileDialog op=newopenfiledialog();
op.ShowDialog();
StreamReader sr=新的StreamReader(op.FileName);
int x=1920;
int y=1080;
位图img=新位图(x,y);
对于(int i=0;i
但是从这个bmp文件中,
我得到这个输出:
有人知道如何解决这个问题吗
提前感谢。当您写入像素时,您将在单独的一行中写入每个像素。但是,在读取时,您是在每列读取一行,然后对列的每一行使用相同的颜色值 相反,在最里面的循环中调用
ReadLine
for (int i = 0; i < img.Width; i++)
{
for (int j = 0; j < img.Height; j++)
{
string rl = sr.ReadLine();
img.SetPixel(i, j, Color.FromArgb(Int32.Parse(rl)));
}
}
for(int i=0;i
无需添加,这种图像格式在空间方面效率极低,在当前的实现中,其读写性能也非常低。明智的做法是将其仅用作学习练习。当您写入像素时,您将在单独的一行中写入每个像素。但是,在读取时,您是在每列读取一行,然后对列的每一行使用相同的颜色值 相反,在最里面的循环中调用
ReadLine
for (int i = 0; i < img.Width; i++)
{
for (int j = 0; j < img.Height; j++)
{
string rl = sr.ReadLine();
img.SetPixel(i, j, Color.FromArgb(Int32.Parse(rl)));
}
}
for(int i=0;i
无需添加,这种图像格式在空间方面效率极低,在当前的实现中,其读写性能也非常低。你最好只把它作为一种学习练习。你能举个例子说明如何做吗?好的,谢谢,它奏效了!为便于阅读,请将答案改写。您能举个例子说明如何做到这一点吗?好的,谢谢,它奏效了!为了可读性而重写。