вот мой код:
Image img;
int height = 0;
int weight = 0;
int size = 0;
DialogResult result = openFileDialog1.ShowDialog();
if (result == DialogResult.OK) // Test result.
{
try
{
img = Image.FromFile(openFileDialog1.FileName);
ccdImageAnalyzer1.Image = img;
byte[] image = imageToByteArray(img);
height = img.Height;
weight = img.Width;
size = height * weight;
}
catch( Exception err)
{
MessageBox.Show(err.ToString());
}
}
MessageBox.Show(result.ToString());
проблема в том, что я получаю:
256 для высоты и 256 для ширины
и размер 65536
однако, мое изображение байтового массива имеет размер {байт [262198]} в длину.
как это?
пикселей от 0 до 255, а 255 - это 1111 1111, и это один байт, поэтому длина массива должна быть всего 65536 ...
так что же происходит?
public byte[] imageToByteArray(Image imageIn)
{
MemoryStream ms = new MemoryStream();
imageIn.Save(ms, System.Drawing.Imaging.ImageFormat.Bmp);
return ms.ToArray();
}
Я использую картинку .Bmp
65536 * 4 = 262198
так это 4 байта на один пиксель?
Кроме того, если это так, то пиксель img (0,0) = изображение [0], изображение [1], изображение [2], изображение [3]?
если так,
я должен преобразовать его в int? чтобы я мог получить число 255?
Я сохранил белую картинку в рисовании как a, bmp, и я запустил свою программу, и каким-то образом я получил не 0 значений в массиве изображений?
как это?
Я даже видел 255
но белый - 0.
Я просто сохраняю белую картинку.
массив должен быть полностью нулевым