Exemple #1
0
 public TagPicture(int attribIndex, string mimeType, TagPicture.PICTURE_TYPE pictureType, string description, byte[] data)
 {
     this.AttributeIndex = attribIndex;
     this.MIMEType       = mimeType;
     this.PictureType    = pictureType;
     this.Description    = description;
     this.Data           = data;
     this.PictureStorage = TagPicture.PICTURE_STORAGE.Internal;
 }
Exemple #2
0
        public TagPicture(string file, TagPicture.PICTURE_TYPE type, string description)
        {
            UTF8Encoding utf8Encoding = new UTF8Encoding();

            this.Data           = utf8Encoding.GetBytes(file);
            this.MIMEType       = TagPicture.GetMimeTypeFromFile(file);
            this.PictureType    = type;
            this.Description    = description;
            this.PictureStorage = TagPicture.PICTURE_STORAGE.External;
        }
Exemple #3
0
        public TagPicture(Image image, TagPicture.PICTURE_TYPE pictureType, string description)
        {
            this.PictureType = pictureType;
            this.Description = description;
            ImageConverter imageConverter = new ImageConverter();

            this.Data           = (byte[])imageConverter.ConvertTo(image, typeof(byte[]));
            this.MIMEType       = TagPicture.GetMimeTypeFromImage(image);
            this.PictureStorage = TagPicture.PICTURE_STORAGE.Internal;
        }
Exemple #4
0
        private TagPicture GetPicture(Tag pTag)
        {
            TagPicture picture  = null;
            string     mimeType = "Unknown";

            TagPicture.PICTURE_TYPE unknown = TagPicture.PICTURE_TYPE.Unknown;
            string       description        = "";
            MemoryStream input  = null;
            BinaryReader reader = null;

            if (pTag.Name == "WM/Picture")
            {
                try
                {
                    input    = new MemoryStream((byte[])pTag);
                    reader   = new BinaryReader(input);
                    mimeType = Marshal.PtrToStringUni(new IntPtr(reader.ReadInt32()));
                    byte num = reader.ReadByte();
                    try
                    {
                        unknown = (TagPicture.PICTURE_TYPE)num;
                    }
                    catch
                    {
                        unknown = TagPicture.PICTURE_TYPE.Unknown;
                    }
                    description = Marshal.PtrToStringUni(new IntPtr(reader.ReadInt32()));
                    int    length      = reader.ReadInt32();
                    byte[] destination = new byte[length];
                    Marshal.Copy(new IntPtr(reader.ReadInt32()), destination, 0, length);
                    picture = new TagPicture(pTag.Index, mimeType, unknown, description, destination);
                }
                catch
                {
                }
                finally
                {
                    if (reader != null)
                    {
                        reader.Close();
                    }
                    if (input != null)
                    {
                        input.Close();
                    }
                }
            }
            return(picture);
        }
Exemple #5
0
        private TagPicture GetPicture(Tag pTag)
        {
            TagPicture result   = null;
            string     mimeType = "Unknown";

            TagPicture.PICTURE_TYPE pictureType  = TagPicture.PICTURE_TYPE.Unknown;
            MemoryStream            memoryStream = null;
            BinaryReader            binaryReader = null;

            if (pTag.Name == "WM/Picture")
            {
                try
                {
                    memoryStream = new MemoryStream((byte[])pTag);
                    binaryReader = new BinaryReader(memoryStream);
                    if (Utils.Is64Bit)
                    {
                        mimeType = Marshal.PtrToStringUni(new IntPtr(binaryReader.ReadInt64()));
                    }
                    else
                    {
                        mimeType = Marshal.PtrToStringUni(new IntPtr(binaryReader.ReadInt32()));
                    }
                    byte b = binaryReader.ReadByte();
                    try
                    {
                        pictureType = (TagPicture.PICTURE_TYPE)b;
                    }
                    catch
                    {
                        pictureType = TagPicture.PICTURE_TYPE.Unknown;
                    }
                    string description;
                    if (Utils.Is64Bit)
                    {
                        description = Marshal.PtrToStringUni(new IntPtr(binaryReader.ReadInt64()));
                    }
                    else
                    {
                        description = Marshal.PtrToStringUni(new IntPtr(binaryReader.ReadInt32()));
                    }
                    int    num   = binaryReader.ReadInt32();
                    byte[] array = new byte[num];
                    if (Utils.Is64Bit)
                    {
                        Marshal.Copy(new IntPtr(binaryReader.ReadInt64()), array, 0, num);
                    }
                    else
                    {
                        Marshal.Copy(new IntPtr(binaryReader.ReadInt32()), array, 0, num);
                    }
                    result = new TagPicture(pTag.Index, mimeType, pictureType, description, array);
                }
                catch
                {
                }
                finally
                {
                    if (binaryReader != null)
                    {
                        binaryReader.Close();
                    }
                    if (memoryStream != null)
                    {
                        memoryStream.Close();
                        memoryStream.Dispose();
                    }
                }
            }
            return(result);
        }