Beispiel #1
0
        public TagBitmapFileInfo getBitmapFileInfo(string fileName)
        {
            FileStream stream = new FileStream(fileName, FileMode.Open, FileAccess.Read);

            byte[]            info     = new byte[16];
            List <byte>       list     = new List <byte>();
            TagBitmapFileInfo fileInfo = new TagBitmapFileInfo();

            try
            {
                stream.Position = 0;
                stream.Read(info, 0, 16);
                list.AddRange(info);


                info            = new byte[16];
                stream.Position = 16;
                stream.Read(info, 0, 16);
                list.AddRange(info);

                info            = new byte[16];
                stream.Position = 32;
                stream.Read(info, 0, 16);
                list.AddRange(info);

                info            = new byte[6];
                stream.Position = 48;
                stream.Read(info, 0, 6);
                list.AddRange(info);

                info = new byte[54];
                info = list.ToArray();

                fileInfo.biSize   = ByteConvertInt.byte4Uint(info, 14);
                fileInfo.biWidth  = ByteConvertInt.byte4Long(info, 18);
                fileInfo.biHeight = ByteConvertInt.byte4Long(info, 22);
                fileInfo.biPlanes = ByteConvertInt.byte2Int(info, 26);
                //fileInfo.biPlanes = Encoding.ASCII.GetString(info, 26, 2);
                fileInfo.biBitCount = ByteConvertInt.byte2Int(info, 28);
                //fileInfo.biBitCount = Encoding.ASCII.GetString(info, 28, 2);
                fileInfo.biCompression   = ByteConvertInt.byte4Uint(info, 30);
                fileInfo.biSizeImage     = ByteConvertInt.byte4Uint(info, 34);
                fileInfo.biXPelsPerMeter = ByteConvertInt.byte4Long(info, 38);
                fileInfo.biYPelsPerMeter = ByteConvertInt.byte4Long(info, 42);
                fileInfo.biClrUsed       = ByteConvertInt.byte4Uint(info, 46);
                fileInfo.biClrImportant  = ByteConvertInt.byte4Uint(info, 50);
            }
            catch (Exception e)
            {
                MessageBox.Show("Error: " + e.Message);
                stream.Close();
            }
            return(fileInfo);
        }
Beispiel #2
0
        public TagBitmapFileHeader getBitmapFileHeader(string fileName)
        {
            FileStream stream = new FileStream(fileName, FileMode.Open, FileAccess.Read);

            byte[] header = new byte[14];
            TagBitmapFileHeader fileHeader = new TagBitmapFileHeader();

            try
            {
                stream.Position = 0;
                stream.Read(header, 0, 14);

                fileHeader.bfType      = Encoding.ASCII.GetString(header, 0, 2);
                fileHeader.bfSize      = ByteConvertInt.byte4Int(header, 2);
                fileHeader.bfReserved1 = ByteConvertInt.byte2Int(header, 6);
                fileHeader.bfReserved2 = ByteConvertInt.byte2Int(header, 8);
                fileHeader.bfOffBits   = ByteConvertInt.byte4Int(header, 10);
            }catch (Exception e)
            {
                MessageBox.Show("Error: " + e.Message);
                stream.Close();
            }
            return(fileHeader);
        }