如何用c#将图片读入并存入数组中
我最近刚开始接触c#,还不太熟悉,所以希望有源程序和注释提供。rightmin,你给的第一个用filestream的方法读出来的数组有些混乱,分不清文件头和颜色像素数据,...
我最近刚开始接触c#,还不太熟悉,所以希望有源程序和注释提供。
rightmin,你给的第一个用filestream的方法读出来的数组有些混乱,分不清文件头和颜色像素数据,第二个bitmap如何读成数组形式能说得再详细点吗?非常感谢~~ 展开
rightmin,你给的第一个用filestream的方法读出来的数组有些混乱,分不清文件头和颜色像素数据,第二个bitmap如何读成数组形式能说得再详细点吗?非常感谢~~ 展开
2个回答
展开全部
将文件通过fs.Read(FileData,0,FileLen)保存在Byte变量中。以下是核心代码:
FileStream fs = new FileStream("1.jpg", FileMode.Open);
int filelength = 0;
filelength=(int) fs.Length; //获得文件长度
Byte[] fl = new Byte[filelength]; //建立一个字节数组
fs.Read(fl, 0, filelength); //按字节流读取
fs.Close()
使用的时候请包含IO命名空间。
你说要获得关于图片的更多信息,那么请使用Bitmap类吧。这个Bitmap类的各种属性和方法打开MSDN就一目了然了。
Bitmap bip = new Bitmap(filename);//创建一个图像对象
//获取图片大小
textBox1.Text= bip.Size.Height.ToString();
textBox2.Text= bip.Size.Width.ToString();
我都不知道你到底要干什么了,你到底要怎么存图片呀,是按二进制流存还是就按图片对象存的呀。
如果是按二进制流存的就按二进制流读到数组里呗。保存的是全部的东西,包括文件头和像素。
如果是按图像对象存就用Bitmap对象存呀。
Bitmap[] bup=new Bitmap[N];//数组。
FileStream fs = new FileStream("1.jpg", FileMode.Open);
int filelength = 0;
filelength=(int) fs.Length; //获得文件长度
Byte[] fl = new Byte[filelength]; //建立一个字节数组
fs.Read(fl, 0, filelength); //按字节流读取
fs.Close()
使用的时候请包含IO命名空间。
你说要获得关于图片的更多信息,那么请使用Bitmap类吧。这个Bitmap类的各种属性和方法打开MSDN就一目了然了。
Bitmap bip = new Bitmap(filename);//创建一个图像对象
//获取图片大小
textBox1.Text= bip.Size.Height.ToString();
textBox2.Text= bip.Size.Width.ToString();
我都不知道你到底要干什么了,你到底要怎么存图片呀,是按二进制流存还是就按图片对象存的呀。
如果是按二进制流存的就按二进制流读到数组里呗。保存的是全部的东西,包括文件头和像素。
如果是按图像对象存就用Bitmap对象存呀。
Bitmap[] bup=new Bitmap[N];//数组。
展开全部
新建一个窗体,拉一个panel控件,size属性设成100,100,双击窗体修改事件。
具体代码:
private void Form1_Load(object sender, EventArgs e)
{
string path = "";//输入绝对路径
string[][] a = new string[10][];
if (File.Exists(path))
{
StreamReader sr = new StreamReader(path);
for (int i = 0; i < 10; i++)
{
string strline = sr.ReadLine();
a[i] = strline.Split(',');
} //存入数组a
sr.Close();
}
Graphics g = this.panel1.CreateGraphics();
for (int j = 0; j < 100; j = j + 10)
{
for (int i = 0; i < 100; i = i + 10)
{
if (Convert.ToInt32(a[i][j]) == 0)
{
g.FillRectangle(Brushes.Black, i, j, 10, 10);
}
else
{
g.FillRectangle(Brushes.White, i, j, 10, 10);
}
}
}
}
具体代码:
private void Form1_Load(object sender, EventArgs e)
{
string path = "";//输入绝对路径
string[][] a = new string[10][];
if (File.Exists(path))
{
StreamReader sr = new StreamReader(path);
for (int i = 0; i < 10; i++)
{
string strline = sr.ReadLine();
a[i] = strline.Split(',');
} //存入数组a
sr.Close();
}
Graphics g = this.panel1.CreateGraphics();
for (int j = 0; j < 100; j = j + 10)
{
for (int i = 0; i < 100; i = i + 10)
{
if (Convert.ToInt32(a[i][j]) == 0)
{
g.FillRectangle(Brushes.Black, i, j, 10, 10);
}
else
{
g.FillRectangle(Brushes.White, i, j, 10, 10);
}
}
}
}
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询