Ejemplo n.º 1
0
        void AddThumbnail(string fileName, Image image)
        {
            lock (_cache)
            {
                string file = System.IO.Path.GetFileName(fileName);
                if (String.Compare(file, "mpthumbs.db", true) == 0)
                {
                    return;
                }
                using (FileStream stream = new FileStream(_folder + @"\mpthumbs.db", FileMode.OpenOrCreate, FileAccess.Write, FileShare.Read))
                {
                    stream.Seek(0, SeekOrigin.End);
                    long         offset = stream.Position;
                    BinaryWriter writer = new BinaryWriter(stream);
                    writer.Write(file);
                    writer.Write((int)image.Width);
                    writer.Write((int)image.Height);
                    MemoryStream imageStream = new MemoryStream();
                    image.Save(imageStream, System.Drawing.Imaging.ImageFormat.Jpeg);
                    writer.Write((int)imageStream.Length);
                    writer.Write(imageStream.GetBuffer(), 0, (int)imageStream.Length);
                    writer.Flush();
                    stream.Flush();
                    stream.Close();

                    ThumbNail thumb = new ThumbNail(file, new Size(image.Width, image.Height), offset, _folder);
                    _cache.Add(thumb);
                }
                System.IO.File.SetAttributes(_folder + @"\mpthumbs.db", FileAttributes.Hidden);
            }
        }
Ejemplo n.º 2
0
        List <ThumbNail> LoadDatabase()
        {
            List <ThumbNail> thumbs = new List <ThumbNail>();

            if (!System.IO.File.Exists(_folder + @"\mpthumbs.db"))
            {
                return(thumbs);
            }

            using (FileStream stream = new FileStream(_folder + @"\mpthumbs.db", FileMode.Open, FileAccess.Read, FileShare.Read))
            {
                BinaryReader reader = new BinaryReader(stream);
                while (true)
                {
                    long offset = stream.Position;
                    if (stream.Position >= stream.Length)
                    {
                        break;
                    }
                    string file = reader.ReadString();
                    if (file == null)
                    {
                        break;
                    }
                    if (file.Length == 0)
                    {
                        break;
                    }
                    int width  = reader.ReadInt32();
                    int height = reader.ReadInt32();
                    int length = reader.ReadInt32();
                    stream.Seek(length, SeekOrigin.Current);

                    ThumbNail thumb = new ThumbNail(file, new Size(width, height), offset, _folder);
                    thumbs.Add(thumb);
                }
                stream.Close();
            }
            return(thumbs);
        }
Ejemplo n.º 3
0
    void AddThumbnail(string fileName, Image image)
    {
      lock (_cache)
      {
        string file = System.IO.Path.GetFileName(fileName);
        if (String.Compare(file, "mpthumbs.db", true) == 0) return;
        using (FileStream stream = new FileStream(_folder + @"\mpthumbs.db", FileMode.OpenOrCreate, FileAccess.Write, FileShare.Read))
        {
          stream.Seek(0, SeekOrigin.End);
          long offset = stream.Position;
          BinaryWriter writer = new BinaryWriter(stream);
          writer.Write(file);
          writer.Write((int)image.Width);
          writer.Write((int)image.Height);
          MemoryStream imageStream = new MemoryStream();
          image.Save(imageStream, System.Drawing.Imaging.ImageFormat.Jpeg);
          writer.Write((int)imageStream.Length);
          writer.Write(imageStream.GetBuffer(), 0, (int)imageStream.Length);
          writer.Flush();
          stream.Flush();
          stream.Close();

          ThumbNail thumb = new ThumbNail(file, new Size(image.Width, image.Height), offset, _folder);
          _cache.Add(thumb);
        }
        System.IO.File.SetAttributes(_folder + @"\mpthumbs.db", FileAttributes.Hidden);
      }
    }
Ejemplo n.º 4
0
    List<ThumbNail> LoadDatabase()
    {
      List<ThumbNail> thumbs = new List<ThumbNail>();
      if (!System.IO.File.Exists(_folder + @"\mpthumbs.db")) return thumbs;

      using (FileStream stream = new FileStream(_folder + @"\mpthumbs.db", FileMode.Open, FileAccess.Read, FileShare.Read))
      {
        BinaryReader reader = new BinaryReader(stream);
        while (true)
        {
          long offset = stream.Position;
          if (stream.Position >= stream.Length) break;
          string file = reader.ReadString();
          if (file == null) break;
          if (file.Length == 0) break;
          int width = reader.ReadInt32();
          int height = reader.ReadInt32();
          int length = reader.ReadInt32();
          stream.Seek(length, SeekOrigin.Current);

          ThumbNail thumb = new ThumbNail(file, new Size(width, height), offset, _folder);
          thumbs.Add(thumb);
        }
        stream.Close();
      }
      return thumbs;
    }