C#笔记(JPG转Hex)
private void button4_Click(object sender, EventArgs e)
{
//-----------------------保存成二进制文件----------------------------------------------------------
const String BIN_FILE_NAME = "BinSample.dat";
FileStream fs = null;
BinaryWriter bw = null;
// 首先判断,文件是否已经存在
if (File.Exists(BIN_FILE_NAME))
{ // 如果文件已经存在,那么删除掉.
File.Delete(BIN_FILE_NAME);
}
fs = new FileStream(BIN_FILE_NAME, FileMode.Create, FileAccess.Write);
bw = new BinaryWriter(fs);
// bw.Write(0xff);
//---------------------------压缩图片-------------------------------------------------------------------------
byte[] buf_temp = new byte[PublicValue.COL * PublicValue.LINE];
int length = (PublicValue.COL * PublicValue.LINE) / 8;
int temp = 0;
byte temp_0, temp_1, temp_2, temp_3, temp_4, temp_5, temp_6, temp_7;
byte temp_ss = 0;
int num_row = 0, num_line = 0;
buf_temp[0] = 0x00; buf_temp[1] = 0xff; buf_temp[2] = 0x01; buf_temp[3] = 0x00; //文件头用于拼配通讯协议
bw.Write(buf_temp[0]); bw.Write(buf_temp[1]); bw.Write(buf_temp[2]); bw.Write(buf_temp[3]);
for (temp = 0; temp < length; temp++)
{
temp_ss = CCD_Image[num_row, num_line];
if (255 == temp_ss) { temp_7 = 0x00; } else { temp_7 = 0x80; } num_line++; temp_ss = CCD_Image[num_row, num_line];
if (255 == temp_ss) { temp_6 = 0x00; } else { temp_6 = 0x40; } num_line++; temp_ss = CCD_Image[num_row, num_line];
if (255 == temp_ss) { temp_5 = 0x00; } else { temp_5 = 0x20; } num_line++; temp_ss = CCD_Image[num_row, num_line];
if (255 == temp_ss) { temp_4 = 0x00; } else { temp_4 = 0x10; } num_line++; temp_ss = CCD_Image[num_row, num_line];
if (255 == temp_ss) { temp_3 = 0x00; } else { temp_3 = 0x08; } num_line++; temp_ss = CCD_Image[num_row, num_line];
if (255 == temp_ss) { temp_2 = 0x00; } else { temp_2 = 0x04; } num_line++; temp_ss = CCD_Image[num_row, num_line];
if (255 == temp_ss) { temp_1 = 0x00; } else { temp_1 = 0x02; } num_line++; temp_ss = CCD_Image[num_row, num_line];
if (255 == temp_ss) { temp_0 = 0x00; } else { temp_0 = 0x01; } num_line++;
if (num_line >= PublicValue.COL) { num_line = 0; num_row++; }
buf_temp[temp] = (byte)(temp_7 | temp_6 | temp_5 | temp_4 | temp_3 | temp_2 | temp_1 | temp_0);
// bw.Write(buf_temp[temp].ToString());
bw.Write(buf_temp[temp]);
} //---------------------------------------------------------------------------------------------------------------------
// 关闭文件.
bw.Close();
fs.Close();
bw = null;
fs = null;
}