/// <summary>
        /// Metoda dodaje wpisy do bazy
        /// </summary>
        /// <param name="lista">lista plików o których nale¿y dodaæ wpisy do bazy</param>
        internal void dodaj_kolekcje_do_bazy(List <string> lista)
        {
            StringBuilder sb          = new StringBuilder("Nie uda³o siê dodaæ do kolekcji nastepuj¹cych zdjêæ:\n");
            bool          nieUdaloSie = false;

            foreach (string n in lista)
            {
                try
                {
                    Zdjecie z = new Zdjecie(n);
                    z.ZweryfikujZdjecie();
                    if (z.DodajDoKolekcji() == false)
                    {
                        sb.Append(z.Path + "\n");
                        if (nieUdaloSie == false)
                        {
                            nieUdaloSie = true;
                        }
                    }
                }
                catch (Exception e)
                {
                    MessageBox.Show(e.ToString());
                }
            }
            if (nieUdaloSie)
            {
                MessageBox.Show(sb.ToString());
            }
        }
Example #2
0
 public void Wykonaj(Zdjecie z, Stack <object> Argumenty)
 {
     if (z.Zaznaczenie.IsEmpty)
     {
         BitmapFilter.GrayScale(z.Duze);
     }
     else
     {
         if (z.Zaznaczenie.Width < 0)
         {
             z.Zaznaczenie.X     += z.Zaznaczenie.Width;
             z.Zaznaczenie.Width *= -1;
         }
         if (z.Zaznaczenie.Height < 0)
         {
             z.Zaznaczenie.Y      += z.Zaznaczenie.Height;
             z.Zaznaczenie.Height *= -1;
         }
         Bitmap   grayed = new Bitmap(Math.Abs(z.Zaznaczenie.Width), Math.Abs(z.Zaznaczenie.Height), z.Duze.PixelFormat);
         Graphics g      = Graphics.FromImage(grayed);
         g.DrawImage(z.Duze, new Rectangle(0, 0, grayed.Width, grayed.Height), z.Zaznaczenie, GraphicsUnit.Pixel);
         g.Dispose();
         BitmapFilter.GrayScale(grayed);
         g = Graphics.FromImage(z.Duze);
         g.DrawImage(grayed, z.Zaznaczenie);
         g.Dispose();
     }
 }
        /// <summary>
        /// Metoda tworz¹ca obiekty zdjêc i dodaj¹ca je do kontrolki wyœwietlaj¹cej
        /// </summary>
        /// <param name="Node">wêz³ dla którego tworzymy obiekty zdjêæ</param>
        /// <returns>zwraca tablice obiektów zdjêæ</returns>
        private Zdjecie[] WybierzPlikiZdjec(DirTreeNode Node)
        {
            List <Zdjecie> zdjecia = new List <Zdjecie>();
            List <string>  pliki   = Przefiltruj(Node.Path);

            Zdjecie z;

            if (Node.Text != "Mój Komputer")
            {
                try
                {
                    for (int i = 0; i < pliki.Count; i++)
                    {
                        try
                        {
                            if ((pliki[i].ToLower().LastIndexOf(".jpg") != -1 && pliki[i].ToLower().LastIndexOf(".jpg") == (pliki[i].Length - 4)) || (pliki[i].ToLower().LastIndexOf(".jpeg") != -1 && pliki[i].ToLower().LastIndexOf(".jpeg") == (pliki[i].Length - 5)))
                            {
                                z = new Zdjecie(pliki[i]);
                                z.ZweryfikujZdjecie();
                                zdjecia.Add(z);
                            }
                        }
                        catch (ArgumentException)
                        {
                            MessageBox.Show("Plik: \"" + pliki[i].Substring(pliki[i].LastIndexOf("\\") + 1) + "\" mimo poprawnego rozszezenie nie zawiera zdjêcia", pliki[i], MessageBoxButtons.OK, MessageBoxIcon.Warning);
                        }
                    }
                }
                catch (Exception e)
                {
                    MessageBox.Show(e.Message + " - Odmowa dostêpu", Node.Text, MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
            return(zdjecia.ToArray());
        }
Example #4
0
 public void Wykonaj(Photo.Zdjecie z, System.Collections.Generic.Stack <object> Argumenty)
 {
     if (z.Zaznaczenie.IsEmpty)
     {
         Photo.BitmapFilter.GaussianBlur(z.Duze, 4);
     }
     else
     {
         if (z.Zaznaczenie.Width < 0)
         {
             z.Zaznaczenie.X     += z.Zaznaczenie.Width;
             z.Zaznaczenie.Width *= -1;
         }
         if (z.Zaznaczenie.Height < 0)
         {
             z.Zaznaczenie.Y      += z.Zaznaczenie.Height;
             z.Zaznaczenie.Height *= -1;
         }
         Bitmap   blured = new Bitmap(Math.Abs(z.Zaznaczenie.Width), Math.Abs(z.Zaznaczenie.Height), z.Duze.PixelFormat);
         Graphics g      = Graphics.FromImage(blured);
         g.DrawImage(z.Duze, new Rectangle(0, 0, blured.Width, blured.Height), z.Zaznaczenie, GraphicsUnit.Pixel);
         g.Dispose();
         Photo.BitmapFilter.GaussianBlur(blured, 4);
         g = Graphics.FromImage(z.Duze);
         g.DrawImage(blured, z.Zaznaczenie);
         g.Dispose();
     }
 }
 /// <summary>
 /// Konstruktor
 /// </summary>
 /// <param name="z">obiekt zdjêcia potrzebny do u¿ycia pewnych metod z tego obiektu</param>
 public Dodaj_tagi_do_zdjecia(Zdjecie z)
 {
     InitializeComponent();
     //zdjecie = z;
     //Wypelnij();
     //opcja = 1;
 }
Example #6
0
 public void Wykonaj(Zdjecie z, Stack <object> Argumenty)
 {
     if (z.Zaznaczenie.Width != 0 && z.Zaznaczenie.Height != 0)
     {
         if (z.Zaznaczenie.Width < 0)
         {
             z.Zaznaczenie.X     += z.Zaznaczenie.Width;
             z.Zaznaczenie.Width *= -1;
         }
         if (z.Zaznaczenie.Height < 0)
         {
             z.Zaznaczenie.Y      += z.Zaznaczenie.Height;
             z.Zaznaczenie.Height *= -1;
         }
         Bitmap   cropped = new Bitmap(Math.Abs(z.Zaznaczenie.Width), Math.Abs(z.Zaznaczenie.Height), z.Duze.PixelFormat);
         Graphics g       = Graphics.FromImage(cropped);
         g.DrawImage(z.Duze, new Rectangle(0, 0, cropped.Width, cropped.Height), z.Zaznaczenie, GraphicsUnit.Pixel);
         g.Dispose();
         foreach (PropertyItem pi in z.Duze.PropertyItems)
         {
             cropped.SetPropertyItem(pi);
         }
         z.Duze = cropped;
     }
 }
Example #7
0
 /// <summary>
 /// Konstruktor
 /// </summary>
 /// <param name="z">zdjecie dla którego ma formatka byæ wywo³ana</param>
 public Dodaj_albumy_do_zdjecia(Zdjecie z)
 {
     InitializeComponent();
     //zdjecie = z;
     //Wypelnij();
     //opcja = 1;
 }
Example #8
0
        private void OK_Button_Click(object sender, EventArgs e)
        {
            if (!textBox2.Text.Equals(""))
            {
                List <string> pliki = new List <string>();
                pliki.AddRange(Directory.GetFiles(textBox2.Text, "*.jpg"));
                pliki.AddRange(Directory.GetFiles(textBox2.Text, "*.jpeg"));

                PropertyItem[] items;
                string         iiphotoTag;
                foreach (string plik in pliki)
                {
                    items = Zdjecie.PobierzDaneExif(plik);
                    foreach (PropertyItem item in items)
                    {
                        if (item.Id == PropertyTags.IIPhotoTag)
                        {
                            iiphotoTag = PropertyTags.ParseProp(item);
                            if (long.Parse(iiphotoTag) == id)
                            {
                                plikOdnaleziony = plik;
                                this.Close();
                                return;
                            }
                        }
                    }
                }
            }
            MessageBox.Show("Nie znaleziono szukanego pliku w podanej lokalizacji!");
            this.Close();
            return;
        }
Example #9
0
 private void fillTags(Zdjecie zdjecie)
 {
     Tags.Items.Add(new ListViewItem(new string[] { "Lokalizacja", zdjecie.Path.Substring(0, zdjecie.Path.LastIndexOf('\\') + 1) }));
     Tags.Items.Add(new ListViewItem(new string[] { "Nazwa", zdjecie.NazwaPliku }));
     Tags.Items.Add(new ListViewItem(new string[] { "SzerokoϾ", zdjecie.Duze.Width.ToString() }));
     Tags.Items.Add(new ListViewItem(new string[] { "WysokoϾ", zdjecie.Duze.Height.ToString() }));
     Tags.Items.Add(new ListViewItem(new string[] { "Format", zdjecie.FormatPliku }));
 }
 private void fillTags(Zdjecie zdjecie)
 {
     Tags.Items.Add(new ListViewItem(new string[] { "Lokalizacja", zdjecie.Path.Substring(0, zdjecie.Path.LastIndexOf('\\') + 1) }));
     Tags.Items.Add(new ListViewItem(new string[] { "Nazwa", zdjecie.NazwaPliku }));
     Tags.Items.Add(new ListViewItem(new string[] { "SzerokoϾ", zdjecie.Duze.Width.ToString() }));
     Tags.Items.Add(new ListViewItem(new string[] { "WysokoϾ", zdjecie.Duze.Height.ToString() }));
     Tags.Items.Add(new ListViewItem(new string[] { "Format", zdjecie.FormatPliku}));
 }
 public IZdjecie[] PodajWynik()
 {
     List<Zdjecie> zdjecia = new List<Zdjecie>();
     foreach (string plik in wynik)
     {
         Zdjecie zdjecie = new Zdjecie(plik);
         zdjecia.Add(zdjecie);
     }
     return zdjecia.ToArray();
 }
 public void setImage(Zdjecie zdjecie)
 {
     this.zdjecie = zdjecie;
     this.zdjecieZapas = zdjecie;
     this.pictureBoxImage = this.zdjecie.Bitmap;
     this.checkImagePosition();
     this.lmStartingPoint = new Point();
     this.selectedRectangle = new Rectangle(0, 0, 0, 0);
     //this.clearRect = false;
 }
Example #13
0
 public void setImage(Zdjecie zdjecie)
 {
     this.zdjecie         = zdjecie;
     this.zdjecieZapas    = zdjecie;
     this.pictureBoxImage = this.zdjecie.Miniatura;
     this.checkImagePosition();
     this.lmStartingPoint   = new Point();
     this.selectedRectangle = new Rectangle(0, 0, 0, 0);
     //this.clearRect = false;
 }
        private Zdjecie[] ZnajdzPlikiWKatalogu(BackgroundWorker bw, DirTreeNode Node)
        {
            List <Zdjecie> zdjecia = new List <Zdjecie>();
            List <string>  pliki   = new List <string>();

            try
            {
                pliki.AddRange(Directory.GetFiles(Node.Path, "*.jpg"));
                pliki.AddRange(Directory.GetFiles(Node.Path, "*.jpeg"));
                pliki.AddRange(Directory.GetFiles(Node.Path, "*.tif"));
                pliki.AddRange(Directory.GetFiles(Node.Path, "*.tiff"));

                pliki.Sort();

                for (int i = 0; i < pliki.Count; i++)
                {
                    try
                    {
                        if ((pliki[i].ToLower().LastIndexOf(".jpg") != -1 && pliki[i].ToLower().LastIndexOf(".jpg") == (pliki[i].Length - 4)) || (pliki[i].ToLower().LastIndexOf(".jpeg") != -1 && pliki[i].ToLower().LastIndexOf(".jpeg") == (pliki[i].Length - 5)) || (pliki[i].ToLower().LastIndexOf(".tif") != -1 && pliki[i].ToLower().LastIndexOf(".tif") == (pliki[i].Length - 4)) || (pliki[i].ToLower().LastIndexOf(".tiff") != -1 && pliki[i].ToLower().LastIndexOf(".tiff") == (pliki[i].Length - 5)))
                        {
                            Zdjecie z = new Zdjecie(pliki[i]);
                            bw.ReportProgress(0, z);
                            zdjecia.Add(z);
                        }
                    }
                    catch (ArgumentException)
                    {
                        //MessageBox.Show("testowo: plik nie jest w poprawnym formacie ");
                        MessageBox.Show("Plik: \"" + pliki[i].Substring(pliki[i].LastIndexOf("\\") + 1) + "\" mimo poprawnego rozszezenie nie zawiera zdjêcia", pliki[i], MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    }
                }
            }
            catch (Exception e)
            {
                MessageBox.Show(e.Message + " - Odmowa dostêpu", Node.Text, MessageBoxButtons.OK, MessageBoxIcon.Error);



                /*if (Node.Text.Length == 3)
                 * {
                 *  if (Node.Text.CompareTo("A:\\") == 0 || Node.Text.CompareTo("B:\\") == 0 )
                 *  {
                 *      Node.ImageIndex = Dyskietka;
                 *      Node.SelectedImageIndex = Dyskietka;
                 *  }
                 * }
                 */
                DirTreeNode dd = new DirTreeNode("napis");

                this.SelectedNode = dd;
                //this.SelectedNode = null;
            }
            return(zdjecia.ToArray());
        }
Example #15
0
        public IZdjecie[] PodajWynik()
        {
            List <Zdjecie> zdjecia = new List <Zdjecie>();

            foreach (string plik in wynik)
            {
                Zdjecie zdjecie = new Zdjecie(plik);
                zdjecia.Add(zdjecie);
            }
            return(zdjecia.ToArray());
        }
Example #16
0
        /*public void Zoom(double zoom)
         * {
         *  if (imageView1.Visible == true)
         *  {
         *      imageView1.Zoom(zoom);
         *  }
         *  else if (thumbnailView1.Visible == true)
         *  {
         *      thumbnailView1.ShowImages(zoom);
         *  }
         * }*/

        /*public void Crop()
         * {
         *  if (imageView1.Visible == true)
         *  {
         *      imageView1.Crop();
         *  }
         * }*/

        /*public void toGrayScale()
         * {
         *  if (imageView1.Visible == true)
         *  {
         *      imageView1.toGrayScale();
         *  }
         * }*/

        private void mouseDoubleClick(object sender, MouseEventArgs e)
        {
            ListViewItem listViewItem = ((WidokMiniatur)sender).FocusedItem;
            Zdjecie      z            = (Zdjecie)thumbnailView1[listViewItem.ImageIndex];

            this.imageView1.setImage(z);
            this.SetImageView();
            if (WybranoZdjecie != null)
            {
                WybranoZdjecie(z);
            }
        }
        private void fillExif(Zdjecie zdjecie)
        {
            Dictionary<string, int> d = PropertyTags.defaultExifIds;
            string propertyValue;

            foreach (KeyValuePair<string,int> kv in d)
            {
                propertyValue = zdjecie.GetProperty(kv.Value);
                if (!propertyValue.Equals(""))
                    Exif.Items.Add(new ListViewItem(new string[] { kv.Key, propertyValue }));
            }
        }
Example #18
0
        /// <summary>
        /// Metoda wype³niaj¹ca formatke albumami ustawionymi dla zdjêcia
        /// </summary>
        /// <param name="zdjecie">zdjêcia dla którego wype³niamy formatke</param>
        private void Wypelnij(Zdjecie zdjecie)
        {
            Db baza = new Db();

            baza.Polacz();
            try
            {
                bool czy_znaleziony = false;

                DataSet ds = baza.Select("select id_tagu, nazwa from Tag where album = 1");
                DataSet zczytanie_z_bazy_almumow;

                foreach (DataTable t in ds.Tables)
                {
                    foreach (DataRow r in t.Rows)
                    {
                        if (!(r[0] is DBNull))
                        {
                            zczytanie_z_bazy_almumow = baza.Select("select id_tagu from TagZdjecia where id_zdjecia=" + zdjecie.Id + " and id_tagu in (select id_tagu from Tag where album=1)");

                            foreach (DataTable t2 in zczytanie_z_bazy_almumow.Tables)
                            {
                                foreach (DataRow r2 in t2.Rows)
                                {
                                    if (!(r2[0] is DBNull))
                                    {
                                        if ((Int64)r2[0] == (Int64)r[0])
                                        {
                                            this.checkedListBox1.Items.Add((string)r[1], true);
                                            czy_znaleziony = true;
                                            break;
                                        }
                                    }
                                }
                            }

                            if (czy_znaleziony == false)
                            {
                                this.checkedListBox1.Items.Add((string)r[1], false);
                            }
                            czy_znaleziony = false;
                        }
                    }
                }
            }
            catch (SqlException ex)
            {
                MessageBox.Show("blad bazy: " + ex.Message);
            }
            baza.Rozlacz();
        }
Example #19
0
        private void fillExif(Zdjecie zdjecie)
        {
            Dictionary <string, int> d = PropertyTags.defaultExifIds;
            string propertyValue;

            foreach (KeyValuePair <string, int> kv in d)
            {
                propertyValue = zdjecie.GetProperty(kv.Value);
                if (!propertyValue.Equals(""))
                {
                    Exif.Items.Add(new ListViewItem(new string[] { kv.Key, propertyValue }));
                }
            }
        }
Example #20
0
        public void Wykonaj(Zdjecie z, Stack <object> Argumenty)
        {
            switch (KodOperacji)
            {
            case 1:
                z.Duze.RotateFlip(RotateFlipType.Rotate90FlipNone);
                break;

            case 2:
                z.Duze.RotateFlip(RotateFlipType.Rotate270FlipNone);
                break;

            case 3:
                z.Duze.RotateFlip(RotateFlipType.Rotate180FlipNone);
                break;
            }
            z.Duze = Zdjecie.FromImage(z.Duze);
        }
Example #21
0
        /// <summary>
        /// Metoda wype³niaj¹ca formatke z godnie z informacjami z bazy dotycz¹cych danego zdjêcia
        /// </summary>
        /// <param name="zdjecie">zdjêcie dla którego uaktualniamy tagi</param>
        private void Wypelnij(Zdjecie zdjecie)
        {
            Db baza = new Db();

            baza.Polacz();
            try
            {
                List <Int64> lista;
                bool         czy_znaleziony = false;

                DataSet ds = baza.Select("select id_tagu, nazwa from Tag where album = 0");

                foreach (DataTable t in ds.Tables)
                {
                    foreach (DataRow r in t.Rows)
                    {
                        if (!(r[0] is DBNull))
                        {
                            lista = zdjecie.Tagi;
                            //MessageBox.Show("lista.count: " + lista.Count);
                            foreach (Int64 tag in lista)
                            {
                                if (tag == (Int64)r[0])
                                {
                                    this.checkedListBox1.Items.Add((string)r[1], true);
                                    czy_znaleziony = true;
                                    break;
                                }
                            }
                            if (czy_znaleziony == false)
                            {
                                this.checkedListBox1.Items.Add((string)r[1], false);
                            }
                            czy_znaleziony = false;
                        }
                    }
                }
            }
            catch (SqlException ex)
            {
                MessageBox.Show("blad bazy: " + ex.Message);
            }
            baza.Rozlacz();
        }
Example #22
0
        /// <summary>
        /// Metoda wypelniajaca kontrolke przekazanym zdjeciem
        /// </summary>
        /// <param name="zdjecia">Tablica zdjec</param>
        public void Wypelnij(IZdjecie[] zdjecia)
        {
            if (zdjecia.Length != 0)
            {
                //this.Oproznij();
                Zdjecie temp = this.zdjecie;
                this.zdjecie           = (Zdjecie)zdjecia[0];
                this.pictureBox1.Image = ZoomImage();
                this.checkImagePosition();
                this.lmStartingPoint   = new Point();
                this.selectedRectangle = new Rectangle(0, 0, 0, 0);
                zdjecie.Zaznaczenie    = selectedRectangle;
                if (temp != zdjecie && temp != null)
                {
                    if (temp.Edytowano)
                    {
                        RodzajDecyzji decyzja = temp.ZapisanieNiezapisanych();
                        switch (decyzja)
                        {
                        case RodzajDecyzji.Tak:
                            temp.Zapisz();
                            break;

                        case RodzajDecyzji.Nie:
                            break;

                        case RodzajDecyzji.TakDlaWszystkich:
                            temp.Zapisz();
                            break;

                        case RodzajDecyzji.NieDlaWszystkich:
                            break;
                        }
                    }
                    temp.Dispose();
                    if (ZmodyfikowanoZdjecie != null)
                    {
                        ZmodyfikowanoZdjecie(null, temp, RodzajModyfikacjiZdjecia.Zawartosc);
                    }
                }
                this.Refresh();
            }
        }
        /// <summary>
        /// Metoda dodaje tagi dla katalogu
        /// </summary>
        private void DodajTagiDlaKatalogu(object sender, EventArgs e)
        {
            ToolStripItem mn = (ToolStripItem)sender;

            List <string>  lista_stringow = Przefiltruj(mn.ToolTipText);
            List <Zdjecie> lista_zdjec    = new List <Zdjecie>();

            foreach (string plik in lista_stringow)
            {
                Zdjecie z = new Zdjecie(plik);
                z.ZweryfikujZdjecie();
                lista_zdjec.Add(z);
            }

            Dodaj_tagi_do_zdjecia dtdz = new Dodaj_tagi_do_zdjecia(lista_zdjec, true);

            dtdz.ZmienionoTagi += new ZmienionoTagiDelegate(this.ZmienionoTagi);
            dtdz.Show();
        }
Example #24
0
        /// <summary>
        /// Metoda zwraca slownik z danymi Exif, ktore zostana wpisane do bazy danych
        /// </summary>
        /// <returns>Slownik z danymi Exif</returns>
        public Dictionary <string, string> PobierzExifDoBazy()
        {
            PropertyItem[]              propertyItems = Zdjecie.PobierzDaneExif(Path);
            Dictionary <int, string>    defaults      = PropertyTags.defaultExifDoBazy;
            Dictionary <string, string> d             = new Dictionary <string, string>();
            string propertyValue;

            foreach (PropertyItem pItem in propertyItems)
            {
                if (defaults.ContainsKey(pItem.Id))
                {
                    propertyValue = PropertyTags.ParseProp(pItem);
                    if (!d.ContainsKey(defaults[pItem.Id]) && !propertyValue.Equals(""))
                    {
                        d.Add(defaults[pItem.Id], propertyValue);
                    }
                }
            }
            return(d);
        }
        /// <summary>
        /// Metoda dodaje katalog do albumów
        /// </summary>
        internal void DodajDoAlbumu(object sender, EventArgs e)
        {
            ToolStripItem mn = (ToolStripItem)sender;

            List <string>  lista_stringow = Przefiltruj(mn.ToolTipText);
            List <Zdjecie> lista_zdjec    = new List <Zdjecie>();

            foreach (string s in lista_stringow)
            {
                Zdjecie z = new Zdjecie(s);
                z.ZweryfikujZdjecie();
                lista_zdjec.Add(z);
            }

            Dodaj_albumy_do_zdjecia dadz = new Dodaj_albumy_do_zdjecia(lista_zdjec, this, mn.ToolTipText);

            dadz.Show();

            //Dodaj_katalog_do_bazy ddk = new Dodaj_katalog_do_bazy(mn.ToolTipText, this);
            //ddk.Show();
        }
 private void wybranoItem(ListViewItem listViewItem)
 {
     if ((WidokMiniatur.listViewTag)listViewItem.Tag == WidokMiniatur.listViewTag.zdjecie)
     {
         try
         {
             Zdjecie[] z = new Zdjecie[] { (Zdjecie)Thumbnailview[listViewItem.ImageIndex - Thumbnailview.IloscKatalogow] };
             this.widokZdjecia1.Wypelnij(z);
             this.SetImageView();
             if (WybranoZdjecie != null)
             {
                 WybranoZdjecie(z[0]);
             }
         }
         catch (FileNotFoundException)
         {
             MessageBox.Show("Wybrane zdjêcie nie mo¿e zostaæ odnalezione na dysku!", "B³¹d!", MessageBoxButtons.OK, MessageBoxIcon.Warning);
         }
         catch (DirectoryNotFoundException)
         {
             MessageBox.Show("Katalog z wybranym zdjêciem nie mo¿e zostaæ odnaleziony!", "B³¹d!", MessageBoxButtons.OK, MessageBoxIcon.Warning);
         }
     }
     else
     {
         try
         {
             Katalog k = Thumbnailview.Katalogi[listViewItem.ImageIndex];
             if (WybranoKatalog != null)
             {
                 WybranoKatalog(k);
             }
             //MessageBox.Show("Wybrano katalog " + k.Path);
         }
         catch (DirectoryNotFoundException)
         {
             MessageBox.Show("Wybrany katalog nie mo¿e zostaæ odnaleziony na dysku!", "B³¹d!", MessageBoxButtons.OK, MessageBoxIcon.Warning);
         }
     }
 }
Example #27
0
        private void aktualizacjaBazyToolStripMenuItem_Click(object sender, EventArgs e)
        {
            Db baza = new Db();

            baza.Polacz();

            try
            {
                DataSet ds;
                string  pelna_sciezka;

                ds = baza.Select("select sciezka,nazwa_pliku from Zdjecie");

                foreach (DataTable t in ds.Tables)
                {
                    foreach (DataRow r in t.Rows)
                    {
                        if (!(r[0] is DBNull))
                        {
                            pelna_sciezka = r[0] + "\\" + r[1];

                            if (System.IO.File.Exists(pelna_sciezka) == true)
                            {
                                Zdjecie z = new Zdjecie(pelna_sciezka);
                                //tutaj musi byc wukorzystana funkcja do zczytania pol i do update bazy
                                z.ZweryfikujZdjecie();
                                if (z.CzyUstawioneId() == true)
                                {
                                    z.AktualizujBaze();
                                }
                            }
                        }
                    }
                }
            }
            catch (SqlException ex)
            {
                MessageBox.Show("blad bazy: " + ex.Message);
            }
        }
        /// <summary>
        /// Metoda usuwa tagi dla katalogu
        /// </summary>
        private void UsunTagiDlaKatalogu(object sender, EventArgs e)
        {
            ToolStripItem mn = (ToolStripItem)sender;

            List <string> lista_stringow = Przefiltruj(mn.ToolTipText);

            foreach (string plik in lista_stringow)
            {
                Zdjecie z = new Zdjecie(plik);
                z.ZweryfikujZdjecie();

                if (z.CzyUstawioneId() == true)
                {
                    z.UsunTagi();
                }
            }

            if (ZmienionoTagi != null)
            {
                ZmienionoTagi();
            }
        }
Example #29
0
 private void Usun_Click(object sender, EventArgs e)
 {
     Zdjecie.UsunZAlbumu(id);
 }
        private Zdjecie[] ZnajdzPlikiWKatalogu(BackgroundWorker bw, DirTreeNode Node)
        {
            List<Zdjecie> zdjecia = new List<Zdjecie>();

            try
            {
                string[] files = Directory.GetFiles(Node.Path, "*.jpg");
                string[] files2 = Directory.GetFiles(Node.Path, "*.jpeg");
                string[] files3 = Directory.GetFiles(Node.Path, "*.tif");
                string[] files4 = Directory.GetFiles(Node.Path, "*.tiff");

                string[] f1 = new string[files.Length];
                string[] f2 = new string[files2.Length];
                string[] f3 = new string[files3.Length];
                string[] f4 = new string[files4.Length];

                int i = 0;

                int z_f1 = 0;
                for (i = 0; i < files.Length; i++)
                {
                    if (files[i].ToLower().LastIndexOf(".jpg") == (files[i].Length - 4))
                    {
                        f1[z_f1] = files[i];
                        z_f1++;
                    }
                }
                int z_f2 = 0;
                for (i = 0; i < files2.Length; i++)
                {
                    //string str = files2[i].ToLower();
                    if (files2[i].ToLower().LastIndexOf(".jpeg") == (files2[i].Length - 5))
                    {
                        f2[z_f2] = files2[i];
                        z_f2++;
                    }
                }
                int z_f3 = 0;
                for (i = 0; i < files3.Length; i++)
                {
                    if (files3[i].ToLower().LastIndexOf(".tif") == (files3[i].Length - 4))
                    {
                        f3[z_f3] = files3[i];
                        z_f3++;
                    }
                }

                int z_f4 = 0;
                for (i = 0; i < files4.Length; i++)
                {
                    if (files4[i].ToLower().LastIndexOf(".tiff") == (files4[i].Length - 5))
                    {
                        f4[z_f4] = files4[i];
                        z_f4++;
                    }
                }

                zdjecia = new List<Zdjecie>(z_f1 + z_f2 + z_f3 + z_f4);

                int ile = 0;
                for (i = 0; i < z_f1; i++)
                {
                    try
                    {
                        Zdjecie z = new Zdjecie(f1[i]);
                        bw.ReportProgress(0, z);
                        zdjecia.Add(z);
                    }
                    catch (ArgumentException)
                    {
                        //MessageBox.Show("testowo: plik nie jest w poprawnym formacie ");
                        MessageBox.Show("Plik: \"" + files[i].Substring(files[i].LastIndexOf("\\") + 1) + "\" mimo poprawnego rozszezenie nie zawiera zdjêcia", files[i], MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    }
                }
                ile = i;
                for (i = 0; i < z_f2; i++)
                {
                    try
                    {
                        Zdjecie z = new Zdjecie(f2[i]);
                        bw.ReportProgress(0, z);
                        zdjecia.Add(z);
                    }
                    catch (ArgumentException)
                    {
                        //MessageBox.Show("testowo: plik nie jest w poprawnym formacie ");

                        MessageBox.Show("Plik: \"" + files2[i].Substring(files2[i].LastIndexOf("\\") + 1) + "\" mimo poprawnego rozszezenie nie zawiera zdjêcia", files2[i], MessageBoxButtons.OK, MessageBoxIcon.Warning);

                    }
                }
                ile += i;
                for (i = 0; i < z_f3; i++)
                {
                    try
                    {
                        Zdjecie z = new Zdjecie(f3[i]);
                        bw.ReportProgress(0, z);
                        zdjecia.Add(z);
                    }
                    catch (ArgumentException)
                    {
                        //MessageBox.Show("testowo: plik nie jest w poprawnym formacie ");
                        MessageBox.Show("Plik: \"" + files3[i].Substring(files3[i].LastIndexOf("\\") + 1) + "\" mimo poprawnego rozszezenie nie zawiera zdjêcia", files3[i], MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    }
                }
                ile += i;
                for (i = 0; i < z_f4; i++)
                {
                    try
                    {
                        Zdjecie z = new Zdjecie(f4[i]);
                        bw.ReportProgress(0, z);
                        zdjecia.Add(z);
                    }
                    catch (ArgumentException)
                    {
                        //MessageBox.Show("testowo: plik nie jest w poprawnym formacie ");
                        MessageBox.Show("Plik: \"" + files4[i].Substring(files4[i].LastIndexOf("\\") + 1) + "\" mimo poprawnego rozszezenie nie zawiera zdjêcia", files4[i], MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    }
                }
            }
            catch (Exception e)
            {
                MessageBox.Show(e.Message + " - Odmowa dostêpu", Node.Text, MessageBoxButtons.OK, MessageBoxIcon.Error);
                /*if (e.Node.Text.Length == 3)
                {
                    if (e.Node.Text.CompareTo("A:\\") == 0 || e.Node.Text.CompareTo("B:\\") == 0 )
                    {

                    }
                    MessageBox.Show("numer: "+e.Node.SelectedImageIndex);
                    //e.Node.ImageIndex = getDriveType(e.Node.Text);

                    this.Refresh();
                    //this.

                }*/

                DirTreeNode dd = new DirTreeNode("napis");

                this.SelectedNode = dd;

            }

            return zdjecia.ToArray();
        }
Example #31
0
 public void Wykonaj(Zdjecie z, Stack<object> Argumenty)
 {
     switch (KodOperacji)
     {
         case 1:
             z.Duze.RotateFlip(RotateFlipType.Rotate90FlipNone);
             break;
         case 2:
             z.Duze.RotateFlip(RotateFlipType.Rotate270FlipNone);
             break;
         case 3:
             z.Duze.RotateFlip(RotateFlipType.Rotate180FlipNone);
             break;
     }
     z.Duze = Zdjecie.FromImage(z.Duze);
 }
        private Zdjecie[] ZnajdzPlikiWKatalogu(BackgroundWorker bw, DirTreeNode Node)
        {
            List<Zdjecie> zdjecia = new List<Zdjecie>();
            List<string> pliki = new List<string>();

            try
            {
                pliki.AddRange(Directory.GetFiles(Node.Path, "*.jpg"));
                pliki.AddRange(Directory.GetFiles(Node.Path, "*.jpeg"));
                pliki.AddRange(Directory.GetFiles(Node.Path, "*.tif"));
                pliki.AddRange(Directory.GetFiles(Node.Path, "*.tiff"));

                pliki.Sort();

                for (int i = 0; i < pliki.Count; i++)
                {
                    try
                    {
                        if ((pliki[i].ToLower().LastIndexOf(".jpg") != -1 && pliki[i].ToLower().LastIndexOf(".jpg") == (pliki[i].Length - 4)) || (pliki[i].ToLower().LastIndexOf(".jpeg") != -1 && pliki[i].ToLower().LastIndexOf(".jpeg") == (pliki[i].Length - 5)) || (pliki[i].ToLower().LastIndexOf(".tif") != -1 && pliki[i].ToLower().LastIndexOf(".tif") == (pliki[i].Length - 4)) || (pliki[i].ToLower().LastIndexOf(".tiff") != -1 && pliki[i].ToLower().LastIndexOf(".tiff") == (pliki[i].Length - 5)))
                        {
                            Zdjecie z = new Zdjecie(pliki[i]);
                            bw.ReportProgress(0, z);
                            zdjecia.Add(z);
                        }
                    }
                    catch (ArgumentException)
                    {
                        //MessageBox.Show("testowo: plik nie jest w poprawnym formacie ");
                        MessageBox.Show("Plik: \"" + pliki[i].Substring(pliki[i].LastIndexOf("\\") + 1) + "\" mimo poprawnego rozszezenie nie zawiera zdjêcia", pliki[i], MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    }
                }
            }
            catch (Exception e)
            {
                MessageBox.Show(e.Message + " - Odmowa dostêpu", Node.Text, MessageBoxButtons.OK, MessageBoxIcon.Error);

                /*if (Node.Text.Length == 3)
                {
                    if (Node.Text.CompareTo("A:\\") == 0 || Node.Text.CompareTo("B:\\") == 0 )
                    {
                        Node.ImageIndex = Dyskietka;
                        Node.SelectedImageIndex = Dyskietka;
                    }
                }
            */
                DirTreeNode dd = new DirTreeNode("napis");

                this.SelectedNode = dd;
                //this.SelectedNode = null;

            }
            return zdjecia.ToArray();
        }
Example #33
0
        private void aktualizacjaBazyToolStripMenuItem_Click(object sender, EventArgs e)
        {
            Db baza = new Db();

            baza.Polacz();

            try
            {
                DataSet ds;
                string pelna_sciezka;

                ds = baza.Select("select sciezka,nazwa_pliku from Zdjecie");

                foreach (DataTable t in ds.Tables)
                {
                    foreach (DataRow r in t.Rows)
                    {
                        if (!(r[0] is DBNull))
                        {
                            pelna_sciezka = r[0] + "\\" + r[1];

                            if (System.IO.File.Exists(pelna_sciezka) == true)
                            {
                                Zdjecie z = new Zdjecie(pelna_sciezka);
                                //tutaj musi byc wukorzystana funkcja do zczytania pol i do update bazy
                                z.ZweryfikujZdjecie();
                                if (z.CzyUstawioneId() == true)
                                {
                                    z.AktualizujBaze();
                                }
                            }
                        }
                    }
                }
            }
            catch (SqlException ex)
            {
                MessageBox.Show("blad bazy: " + ex.Message);
            }
        }
        private Zdjecie[] ZnajdzPlikiWKatalogu(BackgroundWorker bw, DirTreeNode Node)
        {
            List <Zdjecie> zdjecia = new List <Zdjecie>();

            try
            {
                string[] files  = Directory.GetFiles(Node.Path, "*.jpg");
                string[] files2 = Directory.GetFiles(Node.Path, "*.jpeg");
                string[] files3 = Directory.GetFiles(Node.Path, "*.tif");
                string[] files4 = Directory.GetFiles(Node.Path, "*.tiff");

                string[] f1 = new string[files.Length];
                string[] f2 = new string[files2.Length];
                string[] f3 = new string[files3.Length];
                string[] f4 = new string[files4.Length];


                int i = 0;

                int z_f1 = 0;
                for (i = 0; i < files.Length; i++)
                {
                    if (files[i].ToLower().LastIndexOf(".jpg") == (files[i].Length - 4))
                    {
                        f1[z_f1] = files[i];
                        z_f1++;
                    }
                }
                int z_f2 = 0;
                for (i = 0; i < files2.Length; i++)
                {
                    //string str = files2[i].ToLower();
                    if (files2[i].ToLower().LastIndexOf(".jpeg") == (files2[i].Length - 5))
                    {
                        f2[z_f2] = files2[i];
                        z_f2++;
                    }
                }
                int z_f3 = 0;
                for (i = 0; i < files3.Length; i++)
                {
                    if (files3[i].ToLower().LastIndexOf(".tif") == (files3[i].Length - 4))
                    {
                        f3[z_f3] = files3[i];
                        z_f3++;
                    }
                }

                int z_f4 = 0;
                for (i = 0; i < files4.Length; i++)
                {
                    if (files4[i].ToLower().LastIndexOf(".tiff") == (files4[i].Length - 5))
                    {
                        f4[z_f4] = files4[i];
                        z_f4++;
                    }
                }

                zdjecia = new List <Zdjecie>(z_f1 + z_f2 + z_f3 + z_f4);

                int ile = 0;
                for (i = 0; i < z_f1; i++)
                {
                    try
                    {
                        Zdjecie z = new Zdjecie(f1[i]);
                        bw.ReportProgress(0, z);
                        zdjecia.Add(z);
                    }
                    catch (ArgumentException)
                    {
                        //MessageBox.Show("testowo: plik nie jest w poprawnym formacie ");
                        MessageBox.Show("Plik: \"" + files[i].Substring(files[i].LastIndexOf("\\") + 1) + "\" mimo poprawnego rozszezenie nie zawiera zdjêcia", files[i], MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    }
                }
                ile = i;
                for (i = 0; i < z_f2; i++)
                {
                    try
                    {
                        Zdjecie z = new Zdjecie(f2[i]);
                        bw.ReportProgress(0, z);
                        zdjecia.Add(z);
                    }
                    catch (ArgumentException)
                    {
                        //MessageBox.Show("testowo: plik nie jest w poprawnym formacie ");

                        MessageBox.Show("Plik: \"" + files2[i].Substring(files2[i].LastIndexOf("\\") + 1) + "\" mimo poprawnego rozszezenie nie zawiera zdjêcia", files2[i], MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    }
                }
                ile += i;
                for (i = 0; i < z_f3; i++)
                {
                    try
                    {
                        Zdjecie z = new Zdjecie(f3[i]);
                        bw.ReportProgress(0, z);
                        zdjecia.Add(z);
                    }
                    catch (ArgumentException)
                    {
                        //MessageBox.Show("testowo: plik nie jest w poprawnym formacie ");
                        MessageBox.Show("Plik: \"" + files3[i].Substring(files3[i].LastIndexOf("\\") + 1) + "\" mimo poprawnego rozszezenie nie zawiera zdjêcia", files3[i], MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    }
                }
                ile += i;
                for (i = 0; i < z_f4; i++)
                {
                    try
                    {
                        Zdjecie z = new Zdjecie(f4[i]);
                        bw.ReportProgress(0, z);
                        zdjecia.Add(z);
                    }
                    catch (ArgumentException)
                    {
                        //MessageBox.Show("testowo: plik nie jest w poprawnym formacie ");
                        MessageBox.Show("Plik: \"" + files4[i].Substring(files4[i].LastIndexOf("\\") + 1) + "\" mimo poprawnego rozszezenie nie zawiera zdjêcia", files4[i], MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    }
                }
            }
            catch (Exception e)
            {
                MessageBox.Show(e.Message + " - Odmowa dostêpu", Node.Text, MessageBoxButtons.OK, MessageBoxIcon.Error);

                /*if (e.Node.Text.Length == 3)
                 * {
                 *  if (e.Node.Text.CompareTo("A:\\") == 0 || e.Node.Text.CompareTo("B:\\") == 0 )
                 *  {
                 *
                 *  }
                 *  MessageBox.Show("numer: "+e.Node.SelectedImageIndex);
                 *  //e.Node.ImageIndex = getDriveType(e.Node.Text);
                 *
                 *  this.Refresh();
                 *  //this.
                 *
                 *
                 * }*/

                DirTreeNode dd = new DirTreeNode("napis");

                this.SelectedNode = dd;
            }

            return(zdjecia.ToArray());
        }
        /// <summary>
        /// Metoda usuwa katalog z bazy
        /// </summary>
        private void UsunZKolekcji(object sender, EventArgs e)
        {
            ToolStripItem mn = (ToolStripItem)sender;

            List<string> lista_stringow = Przefiltruj(mn.ToolTipText);

            foreach (string plik in lista_stringow)
            {
                Zdjecie z = new Zdjecie(plik);
                z.ZweryfikujZdjecie();

                if (z.CzyUstawioneId() == true)
                {
                    z.UsunZdjecieZBazy();
                    z.UsunId();
                }
            }

            if (ZmienionoIds != null)
                ZmienionoIds();
        }
 /// <summary>
 /// Metoda dodaje wpisy do bazy
 /// </summary>
 /// <param name="lista">lista plik�w o kt�rych nale�y doda� wpisy do bazy</param>
 internal void dodaj_kolekcje_do_bazy(List<string> lista)
 {
     StringBuilder sb = new StringBuilder("Nie uda�o si� doda� do kolekcji nastepuj�cych zdj��:\n");
     bool nieUdaloSie = false;
     foreach (string n in lista)
     {
         try
         {
             Zdjecie z = new Zdjecie(n);
             z.ZweryfikujZdjecie();
             if (z.DodajDoKolekcji() == false)
             {
                 sb.Append(z.Path + "\n");
                 if (nieUdaloSie == false)
                 {
                     nieUdaloSie = true;
                 }
             }
         }
         catch (Exception e)
         {
             MessageBox.Show(e.ToString());
         }
     }
     if (nieUdaloSie)
         MessageBox.Show(sb.ToString());
 }
Example #37
0
 public void Wykonaj(Zdjecie z, System.Collections.Generic.Stack<object> Argumenty)
 {
     if (z.Zaznaczenie.IsEmpty)
     {
         BitmapFilter.Invert(z.Duze);
     }
     else
     {
         if (z.Zaznaczenie.Width < 0)
         {
             z.Zaznaczenie.X += z.Zaznaczenie.Width;
             z.Zaznaczenie.Width *= -1;
         }
         if (z.Zaznaczenie.Height < 0)
         {
             z.Zaznaczenie.Y += z.Zaznaczenie.Height;
             z.Zaznaczenie.Height *= -1;
         }
         Bitmap xored = new Bitmap(Math.Abs(z.Zaznaczenie.Width), Math.Abs(z.Zaznaczenie.Height), z.Duze.PixelFormat);
         Graphics g = Graphics.FromImage(xored);
         g.DrawImage(z.Duze, new Rectangle(0, 0, xored.Width, xored.Height), z.Zaznaczenie, GraphicsUnit.Pixel);
         g.Dispose();
         BitmapFilter.Invert(xored);
         g = Graphics.FromImage(z.Duze);
         g.DrawImage(xored, z.Zaznaczenie);
         g.Dispose();
     }
 }
Example #38
0
 /// <summary>
 /// Powoduje wykonanie operacji opisanej przez to polecenie na bitmapie.
 /// </summary>
 /// <param name="z">Bitmapa na której wykonywana jest operacja.</param>
 public void Wykonaj(Zdjecie z)
 {
     Operacja.Wykonaj(z, Argumenty);
 }
Example #39
0
        /// <summary>
        /// Metoda sprawdza czy jezeli zdejecie mialo tag to czy ten tag skasowac czy nie
        /// </summary>
        public void ZweryfikujZdjecie()
        {
            string sciezka_z_bazy = "", nazwa_pliku_z_bazy = "", sciezka = "", nazwa_pliku = "";
            Db     baza = new Db();

            baza.Polacz();

            if (CzyUstawioneId() == true)
            {
                try
                {
                    DataSet ds = baza.Select("select sciezka, nazwa_pliku from Zdjecie where id_zdjecia=" + Id);

                    foreach (DataTable t in ds.Tables)
                    {
                        foreach (DataRow r in t.Rows)
                        {
                            if (!(r[0] is DBNull))
                            {
                                sciezka_z_bazy     = (string)r[0];
                                nazwa_pliku_z_bazy = (string)r[1];
                            }
                        }
                    }

                    if (nazwa_pliku_z_bazy != "" && sciezka_z_bazy != "")
                    {
                        if (path.Equals(sciezka_z_bazy + "\\" + nazwa_pliku_z_bazy) == false)
                        {
                            //sprawdzic czy zdjecie istnieje na dysku tam gdzie powinno
                            //jesli tak i ma id ten sam to kasujemy z obecnego id
                            //jesli nie to uaktualniamy baze
                            sciezka = path.Substring(0, path.LastIndexOf("\\"));
                            if (sciezka.Length == 2)
                            {
                                sciezka += "\\";
                            }

                            nazwa_pliku = path.Substring(path.LastIndexOf("\\") + 1, path.Length - path.LastIndexOf("\\") - 1);


                            if (System.IO.File.Exists(sciezka_z_bazy + "\\" + nazwa_pliku_z_bazy) == true)
                            {
                                Zdjecie z = new Zdjecie(sciezka_z_bazy + "\\" + nazwa_pliku_z_bazy);
                                //jezeli ma ten sam tag to kasujemy
                                //jesli inny tag to i w bazie nie ma wartosci dla tego tagu to kasujemy tag
                                //jesli inny tag i w bazie cos jest toaktualizujemy sciezke i nazwe plku

                                if (z.Id == Id)
                                {
                                    //kasuj id z this
                                    this.UsunId();
                                }
                                else
                                {
                                    //aktualizacja bazy dla this czyli sciezke i nazwe pliku
                                    try
                                    {
                                        //ZczytajPola();
                                        baza.Update("Zdjecie", "sciezka=\'" + sciezka + "\', nazwa_pliku=\'" + nazwa_pliku + "\' where id_zdjecia=" + Id);
                                        //, komentarz=\'" + komentarz + "\', autor=\'" + autor + "\', orientacja=" + orient + "
                                        //MessageBox.Show("Update1: sciezka=\'" + sciezka + "\', nazwa_pliku=\'" + nazwa_pliku + "\', komentarz=\'" + komentarz + "\', autor=\'" + autor + "\', orientacja=" + orient + " where id_zdjecia=" + Id);
                                    }
                                    catch (SqlException ex)
                                    {
                                        MessageBox.Show("blad sql: " + ex.Message);
                                    }
                                }
                            }
                            else
                            {
                                //aktualizacja bazy dla this czyli sciezke i nazwe pliku
                                try
                                {
                                    baza.Update("Zdjecie", "sciezka=\'" + sciezka + "\', nazwa_pliku=\'" + nazwa_pliku + "\' where id_zdjecia=" + Id);
                                    //ZczytajPola();
                                    //baza.Update("Zdjecie", "sciezka=\'" + sciezka + "\', nazwa_pliku=\'" + nazwa_pliku + "\', komentarz=\'" + komentarz + "\', autor=\'" + autor + "\', orientacja=" + orient + " where id_zdjecia=" + Id);
                                    //MessageBox.Show("Update2: sciezka=\'" + sciezka + "\', nazwa_pliku=\'" + nazwa_pliku + "\', komentarz=\'" + komentarz + "\', autor=\'" + autor + "\', orientacja=" + orient + " where id_zdjecia=" + Id);
                                }
                                catch (SqlException ex)
                                {
                                    MessageBox.Show("blad sql: " + ex.Message);
                                }
                            }
                        }
                        else
                        {//gdy zdjecie zgadza sie ze sciezka to robimy update komentarz, autor itd
                            try
                            {
                                //ZczytajPola();
                                //baza.Update("Zdjecie", "komentarz=\'" + komentarz + "\', autor=\'" + autor + "\', orientacja=" + orient + " where id_zdjecia=" + Id);
                                //MessageBox.Show("Update3: komentarz=\'" + komentarz + "\', autor=\'" + autor + "\', orientacja=" + orient + " where id_zdjecia=" + Id);
                            }
                            catch (SqlException ex)
                            {
                                MessageBox.Show("blad sql: " + ex.Message);
                            }
                        }
                    }
                    else
                    {
                        this.UsunId();
                    }
                }
                catch (SqlException e)
                {
                    MessageBox.Show(e.ToString());
                }
            }
            baza.Rozlacz();
        }
Example #40
0
        /// <summary>
        /// Metoda sprawdza czy jezeli zdejecie mialo tag to czy ten tag skasowac czy nie
        /// </summary>
        public void ZweryfikujZdjecie()
        {
            string sciezka_z_bazy = "", nazwa_pliku_z_bazy = "", sciezka = "", nazwa_pliku = "";
            Db baza = new Db();

            baza.Polacz();

            if (CzyUstawioneId() == true)
            {
                try
                {
                    DataSet ds = baza.Select("select sciezka, nazwa_pliku from Zdjecie where id_zdjecia=" + Id);

                    foreach (DataTable t in ds.Tables)
                    {
                        foreach (DataRow r in t.Rows)
                        {
                            if (!(r[0] is DBNull))
                            {
                                sciezka_z_bazy = (string)r[0];
                                nazwa_pliku_z_bazy = (string)r[1];
                            }
                        }
                    }

                    if (nazwa_pliku_z_bazy != "" && sciezka_z_bazy != "")
                    {

                        if (path.Equals(sciezka_z_bazy + "\\" + nazwa_pliku_z_bazy) == false)
                        {
                            //sprawdzic czy zdjecie istnieje na dysku tam gdzie powinno
                            //jesli tak i ma id ten sam to kasujemy z obecnego id
                            //jesli nie to uaktualniamy baze
                            sciezka = path.Substring(0, path.LastIndexOf("\\"));
                            if (sciezka.Length == 2)
                                sciezka += "\\";

                            nazwa_pliku = path.Substring(path.LastIndexOf("\\") + 1, path.Length - path.LastIndexOf("\\") - 1);

                            if (System.IO.File.Exists(sciezka_z_bazy + "\\" + nazwa_pliku_z_bazy) == true)
                            {
                                Zdjecie z = new Zdjecie(sciezka_z_bazy + "\\" + nazwa_pliku_z_bazy);
                                //jezeli ma ten sam tag to kasujemy
                                //jesli inny tag to i w bazie nie ma wartosci dla tego tagu to kasujemy tag
                                //jesli inny tag i w bazie cos jest toaktualizujemy sciezke i nazwe plku

                                if (z.Id == Id)
                                {
                                    //kasuj id z this
                                    this.UsunId();
                                }
                                else
                                {
                                    //aktualizacja bazy dla this czyli sciezke i nazwe pliku
                                    try
                                    {
                                        //ZczytajPola();
                                        baza.Update("Zdjecie", "sciezka=\'" + sciezka + "\', nazwa_pliku=\'" + nazwa_pliku + "\' where id_zdjecia=" + Id);
                                        //, komentarz=\'" + komentarz + "\', autor=\'" + autor + "\', orientacja=" + orient + "
                                        //MessageBox.Show("Update1: sciezka=\'" + sciezka + "\', nazwa_pliku=\'" + nazwa_pliku + "\', komentarz=\'" + komentarz + "\', autor=\'" + autor + "\', orientacja=" + orient + " where id_zdjecia=" + Id);
                                    }
                                    catch (SqlException ex)
                                    {
                                        MessageBox.Show("blad sql: " + ex.Message);
                                    }
                                }
                            }
                            else
                            {
                                //aktualizacja bazy dla this czyli sciezke i nazwe pliku
                                try
                                {
                                    baza.Update("Zdjecie", "sciezka=\'" + sciezka + "\', nazwa_pliku=\'" + nazwa_pliku + "\' where id_zdjecia=" + Id);
                                    //ZczytajPola();
                                    //baza.Update("Zdjecie", "sciezka=\'" + sciezka + "\', nazwa_pliku=\'" + nazwa_pliku + "\', komentarz=\'" + komentarz + "\', autor=\'" + autor + "\', orientacja=" + orient + " where id_zdjecia=" + Id);
                                    //MessageBox.Show("Update2: sciezka=\'" + sciezka + "\', nazwa_pliku=\'" + nazwa_pliku + "\', komentarz=\'" + komentarz + "\', autor=\'" + autor + "\', orientacja=" + orient + " where id_zdjecia=" + Id);
                                }
                                catch (SqlException ex)
                                {
                                    MessageBox.Show("blad sql: " + ex.Message);
                                }
                            }
                        }
                        else
                        {//gdy zdjecie zgadza sie ze sciezka to robimy update komentarz, autor itd
                            try
                            {
                                //ZczytajPola();
                                //baza.Update("Zdjecie", "komentarz=\'" + komentarz + "\', autor=\'" + autor + "\', orientacja=" + orient + " where id_zdjecia=" + Id);
                                //MessageBox.Show("Update3: komentarz=\'" + komentarz + "\', autor=\'" + autor + "\', orientacja=" + orient + " where id_zdjecia=" + Id);
                            }
                            catch (SqlException ex)
                            {
                                MessageBox.Show("blad sql: " + ex.Message);
                            }
                        }
                    }
                    else
                    {
                        this.UsunId();
                    }
                }
                catch (SqlException e)
                {
                    MessageBox.Show(e.ToString());
                }
            }
            baza.Rozlacz();
        }
Example #41
0
 /// <summary>
 /// Powoduje wykonanie operacji opisanej przez to polecenie na bitmapie.
 /// </summary>
 /// <param name="z">Bitmapa na której wykonywana jest operacja.</param>
 public void Wykonaj(Zdjecie z)
 {
     Operacja.Wykonaj(z, Argumenty);
 }
        /// <summary>
        /// Metoda dodaje katalog do album�w
        /// </summary>
        internal void DodajDoAlbumu(object sender, EventArgs e)
        {
            ToolStripItem mn = (ToolStripItem)sender;

            List<string> lista_stringow = Przefiltruj(mn.ToolTipText);
            List<Zdjecie> lista_zdjec = new List<Zdjecie>();
            foreach (string s in lista_stringow)
            {
                Zdjecie z = new Zdjecie(s);
                z.ZweryfikujZdjecie();
                lista_zdjec.Add(z);
            }

            Dodaj_albumy_do_zdjecia dadz = new Dodaj_albumy_do_zdjecia(lista_zdjec, this, mn.ToolTipText);
            dadz.Show();

            //Dodaj_katalog_do_bazy ddk = new Dodaj_katalog_do_bazy(mn.ToolTipText, this);
            //ddk.Show();
        }
        /// <summary>
        /// Metoda realizuj¹ca zapytanie sql do bazy i zwracaj¹ca liste zdjêc która zosta³a sworzona w oparciu o wynik zapytania
        /// </summary>
        /// <returns>lista zdjêæ która spe³nia warunki wyszukania</returns>
        private List <Zdjecie> ZwrocWyszukanie()
        {
            Db baza = new Db();

            baza.Polacz();
            List <Zdjecie> lista_zdjec = new List <Zdjecie>();

            try
            {
                string  pelna_sciezka;
                DataSet ds;

                /*ds = baza.Select("select sciezka,nazwa_pliku from Zdjecie");
                 *
                 * foreach (DataTable t in ds.Tables)
                 * {
                 *  foreach (DataRow r in t.Rows)
                 *  {
                 *      if (!(r[0] is DBNull))
                 *      {
                 *          pelna_sciezka = r[0] + "\\" + r[1];
                 *
                 *          if (System.IO.File.Exists(pelna_sciezka) == true)
                 *          {
                 *              Zdjecie z = new Zdjecie(pelna_sciezka);
                 *              z.ZweryfikujZdjecie();
                 *          }
                 *      }
                 *  }
                 * }*/


                string sql = "select sciezka,nazwa_pliku from Zdjecie where ";

                foreach (string s in checkedListBox1.CheckedItems)
                {
                    switch (s)
                    {
                    case "po nazwie":
                        sql += " nazwa_pliku like \'%" + textBox1.Text + "%\' or nazwa_pliku like \'" + textBox1.Text + "%\' or nazwa_pliku like \'" + textBox1.Text + "\' or ";
                        break;

                    case "po komentarzu":
                        sql += " komentarz like \'%" + textBox1.Text + "%\' or komentarz like \'" + textBox1.Text + "%\' or komentarz like \'" + textBox1.Text + "\' or ";
                        break;

                    case "po autorze":
                        sql += " autor like \'%" + textBox1.Text + "%\' or autor like \'" + textBox1.Text + "%\' or autor like \'" + textBox1.Text + "\' or ";
                        break;
                    }
                }

                //MessageBox.Show(sql.Substring(0, sql.Length - 4));

                ds = baza.Select(sql.Substring(0, sql.Length - 4));

                foreach (DataTable t in ds.Tables)
                {
                    foreach (DataRow r in t.Rows)
                    {
                        if (!(r[0] is DBNull))
                        {
                            pelna_sciezka = r[0] + "\\" + r[1];

                            if (System.IO.File.Exists(pelna_sciezka) == true)
                            {
                                Zdjecie z = new Zdjecie(pelna_sciezka);
                                //z.ZweryfikujZdjecie();

                                if (z.CzyUstawioneId() == true)
                                {
                                    lista_zdjec.Add(z);
                                }
                            }
                        }
                    }
                }
            }
            catch (SqlException ex)
            {
                MessageBox.Show("blad bazy: " + ex.Message);
            }

            return(lista_zdjec);
        }
        /// <summary>
        /// Metoda dodaje tagi dla katalogu
        /// </summary>
        private void DodajTagiDlaKatalogu(object sender, EventArgs e)
        {
            ToolStripItem mn = (ToolStripItem)sender;

            List<string> lista_stringow = Przefiltruj(mn.ToolTipText);
            List<Zdjecie> lista_zdjec = new List<Zdjecie>();

            foreach (string plik in lista_stringow)
            {
                Zdjecie z = new Zdjecie(plik);
                z.ZweryfikujZdjecie();
                lista_zdjec.Add(z);
            }

            Dodaj_tagi_do_zdjecia dtdz = new Dodaj_tagi_do_zdjecia(lista_zdjec,true);
            dtdz.ZmienionoTagi += new ZmienionoTagiDelegate(this.ZmienionoTagi);
            dtdz.Show();
        }
 /// <summary>
 /// Metoda pobierajaca zdjecie i przekazujaca je do wyswietlenia
 /// </summary>
 /// <param name="zdjecie">Zdjecie ktorego informacje maja zostac wyswietlone</param>
 public void Zaladuj(Zdjecie zdjecie)
 {
     this.zdjecie = zdjecie;
     Wyswietl();
 }
        /// <summary>
        /// Metoda tworz�ca obiekty zdj�c i dodaj�ca je do kontrolki wy�wietlaj�cej
        /// </summary>
        /// <param name="Node">w�z� dla kt�rego tworzymy obiekty zdj��</param>
        /// <returns>zwraca tablice obiekt�w zdj��</returns>
        private Zdjecie[] WybierzPlikiZdjec(DirTreeNode Node)
        {
            List<Zdjecie> zdjecia = new List<Zdjecie>();
            List<string> pliki = Przefiltruj(Node.Path);

            Zdjecie z;
            if (Node.Text != "M�j Komputer")
            {
                try
                {
                    for (int i = 0; i < pliki.Count; i++)
                    {
                        try
                        {
                            if ((pliki[i].ToLower().LastIndexOf(".jpg") != -1 && pliki[i].ToLower().LastIndexOf(".jpg") == (pliki[i].Length - 4)) || (pliki[i].ToLower().LastIndexOf(".jpeg") != -1 && pliki[i].ToLower().LastIndexOf(".jpeg") == (pliki[i].Length - 5)) )
                            {
                                z = new Zdjecie(pliki[i]);
                                z.ZweryfikujZdjecie();
                                zdjecia.Add(z);
                            }
                        }
                        catch (ArgumentException)
                        {

                            MessageBox.Show("Plik: \"" + pliki[i].Substring(pliki[i].LastIndexOf("\\") + 1) + "\" mimo poprawnego rozszezenie nie zawiera zdj�cia", pliki[i], MessageBoxButtons.OK, MessageBoxIcon.Warning);
                        }
                    }
                }
                catch (Exception e)
                {
                    MessageBox.Show(e.Message + " - Odmowa dost�pu", Node.Text, MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
            return zdjecia.ToArray();
        }
        /// <summary>
        /// Metoda wype³niaj¹ca formatke z godnie z informacjami z bazy dotycz¹cych danego zdjêcia
        /// </summary>
        /// <param name="zdjecie">zdjêcie dla którego uaktualniamy tagi</param>
        private void Wypelnij(Zdjecie zdjecie)
        {
            Db baza = new Db();
            baza.Polacz();
            try
            {
                List<Int64> lista;
                bool czy_znaleziony = false;

                DataSet ds = baza.Select("select id_tagu, nazwa from Tag where album = 0");

                foreach (DataTable t in ds.Tables)
                {
                    foreach (DataRow r in t.Rows)
                    {
                        if (!(r[0] is DBNull))
                        {
                            lista = zdjecie.Tagi;
                            //MessageBox.Show("lista.count: " + lista.Count);
                            foreach (Int64 tag in lista)
                            {
                                if (tag == (Int64)r[0])
                                {
                                    this.checkedListBox1.Items.Add((string)r[1], true);
                                    czy_znaleziony = true;
                                    break;
                                }
                            }
                            if (czy_znaleziony == false)
                            {
                                this.checkedListBox1.Items.Add((string)r[1], false);
                            }
                            czy_znaleziony = false;
                        }
                    }
                }
            }
            catch (SqlException ex)
            {
                MessageBox.Show("blad bazy: " + ex.Message);
            }
            baza.Rozlacz();
        }
 /// <summary>
 /// Metoda pobierajaca zdjecie i przekazujaca je do wyswietlenia
 /// </summary>
 /// <param name="zdjecie">Zdjecie ktorego informacje maja zostac wyswietlone</param>
 public void Zaladuj(Zdjecie zdjecie)
 {
     this.zdjecie = zdjecie;
     Wyswietl();
 }
 private void wybranoItem(ListViewItem listViewItem)
 {
     if ((WidokMiniatur.listViewTag)listViewItem.Tag == WidokMiniatur.listViewTag.zdjecie)
     {
         try
         {
             Zdjecie[] z = new Zdjecie[] { (Zdjecie)Thumbnailview[listViewItem.ImageIndex - Thumbnailview.IloscKatalogow] };
             this.widokZdjecia1.Wypelnij(z);
             this.SetImageView();
             if (WybranoZdjecie != null)
                 WybranoZdjecie(z[0]);
         }
         catch (FileNotFoundException)
         {
             MessageBox.Show("Wybrane zdjêcie nie mo¿e zostaæ odnalezione na dysku!", "B³¹d!", MessageBoxButtons.OK, MessageBoxIcon.Warning);
         }
         catch (DirectoryNotFoundException)
         {
             MessageBox.Show("Katalog z wybranym zdjêciem nie mo¿e zostaæ odnaleziony!", "B³¹d!", MessageBoxButtons.OK, MessageBoxIcon.Warning);
         }
     }
     else
     {
         try
         {
             Katalog k = Thumbnailview.Katalogi[listViewItem.ImageIndex];
             if (WybranoKatalog != null)
                 WybranoKatalog(k);
             //MessageBox.Show("Wybrano katalog " + k.Path);
         }
         catch (DirectoryNotFoundException)
         {
             MessageBox.Show("Wybrany katalog nie mo¿e zostaæ odnaleziony na dysku!", "B³¹d!", MessageBoxButtons.OK, MessageBoxIcon.Warning);
         }
     }
 }
        /// <summary>
        /// Metoda która zwraca zdjêcia nale¿ace do albumu który w³aœnie klikneliœmy
        /// </summary>
        /// <param name="Node">wêz³ drzewa z którego wy³usamy nazwe albumu</param>
        /// <returns>lista zdjêæ która zosta³a utworzona przez przeszukanie bazy</returns>
        private List <Zdjecie> ZwrocZdjeciaZAlbumu(TreeNode Node)
        {
            Db baza = new Db();

            Dictionary <Int64, string> nieOdnalezione = new Dictionary <long, string>();
            //List<Int64> nieOdnalezione = new List<Int64>();
            List <Zdjecie> lista = new List <Zdjecie>();

            DataSet ds = null;
            string  pelna_sciezka;

            baza.Polacz();

            try
            {
                if (Node.FullPath.IndexOf("Albumy") == 0 && Node.FullPath.Length > "Albumy".Length)
                {
                    ds = baza.Select("select sciezka,nazwa_pliku,id_zdjecia from zdjecie where id_zdjecia in (select id_zdjecia from TagZdjecia where id_tagu in (select id_tagu from Tag where album=1 and nazwa=\'" + Node.FullPath.Substring("Albumy".Length + 1, Node.FullPath.Length - ("Albumy".Length + 1)) + "\'))");
                }
                else if (Node.FullPath.IndexOf("Albumy") == 0)
                {
                    ds = baza.Select("select sciezka,nazwa_pliku,id_zdjecia from zdjecie where id_zdjecia in (select id_zdjecia from TagZdjecia where id_tagu in (select id_tagu from Tag where album=1))");
                }
                pelna_sciezka = "";

                foreach (DataTable t in ds.Tables)
                {
                    foreach (DataRow r in t.Rows)
                    {
                        if (!(r[0] is DBNull))
                        {
                            pelna_sciezka = r[0] + "\\" + r[1];

                            if (System.IO.File.Exists(pelna_sciezka) == true)
                            {
                                Zdjecie z = new Zdjecie(pelna_sciezka);
                                lista.Add(z);
                            }
                            else
                            {
                                nieOdnalezione.Add((Int64)r[2], pelna_sciezka);
                            }
                        }
                    }
                }
            }
            catch (SqlException)
            {
                MessageBox.Show("blad bazy");
            }

            baza.Rozlacz();

            if (nieOdnalezione.Count > 0)
            {
                Dictionary <long, string> .Enumerator enu = nieOdnalezione.GetEnumerator();
                KeyValuePair <long, string>           kv;
                enu.MoveNext();
                while (true)
                {
                    kv = enu.Current;
                    ZnajdzPliki  zp = new ZnajdzPliki(kv);
                    DialogResult dr = zp.ShowDialog();
                    if (dr == DialogResult.OK)
                    {
                        if (zp.czyOdnaleziono())
                        {
                            Zdjecie odnalezioneZdjecie = new Zdjecie(zp.OdnalezionyPlik);
                            odnalezioneZdjecie.ZweryfikujZdjecie();
                            lista.Add(odnalezioneZdjecie);
                            if (!enu.MoveNext())
                            {
                                break;
                            }
                        }
                    }
                    else if (dr == DialogResult.Cancel)
                    {
                        if (!enu.MoveNext())
                        {
                            break;
                        }
                    }
                    else if (dr == DialogResult.Abort)
                    {
                        break;
                    }
                }
            }

            return(lista);
        }
        /// <summary>
        /// Metoda która zwraca zdjêcia nale¿ace do albumu który w³aœnie klikneliœmy
        /// </summary>
        /// <param name="Node">wêz³ drzewa z którego wy³usamy nazwe albumu</param>
        /// <returns>lista zdjêæ która zosta³a utworzona przez przeszukanie bazy</returns>
        private List<Zdjecie> ZwrocZdjeciaZAlbumu(TreeNode Node)
        {
            Db baza = new Db();

            Dictionary<Int64, string> nieOdnalezione = new Dictionary<long,string>();
            //List<Int64> nieOdnalezione = new List<Int64>();
            List<Zdjecie> lista = new List<Zdjecie>();

            DataSet ds = null;
            string pelna_sciezka;

            baza.Polacz();

            try
            {
                if (Node.FullPath.IndexOf("Albumy") == 0 && Node.FullPath.Length > "Albumy".Length)
                {
                    ds = baza.Select("select sciezka,nazwa_pliku,id_zdjecia from zdjecie where id_zdjecia in (select id_zdjecia from TagZdjecia where id_tagu in (select id_tagu from Tag where album=1 and nazwa=\'" + Node.FullPath.Substring("Albumy".Length + 1, Node.FullPath.Length - ("Albumy".Length + 1)) + "\'))");
                }
                else if (Node.FullPath.IndexOf("Albumy") == 0)
                {
                    ds = baza.Select("select sciezka,nazwa_pliku,id_zdjecia from zdjecie where id_zdjecia in (select id_zdjecia from TagZdjecia where id_tagu in (select id_tagu from Tag where album=1))");
                }
                pelna_sciezka = "";

                foreach (DataTable t in ds.Tables)
                {
                    foreach (DataRow r in t.Rows)
                    {
                        if (!(r[0] is DBNull))
                        {
                            pelna_sciezka = r[0] + "\\" + r[1];

                            if (System.IO.File.Exists(pelna_sciezka) == true)
                            {
                                Zdjecie z = new Zdjecie(pelna_sciezka);
                                lista.Add(z);
                            }
                            else
                            {
                                nieOdnalezione.Add((Int64)r[2], pelna_sciezka);
                            }
                        }
                    }
                }
            }
            catch (SqlException)
            {
                MessageBox.Show("blad bazy");
            }

            baza.Rozlacz();

            if (nieOdnalezione.Count > 0)
            {
                Dictionary<long, string>.Enumerator enu = nieOdnalezione.GetEnumerator();
                KeyValuePair<long, string> kv;
                enu.MoveNext();
                while (true)
                {
                    kv = enu.Current;
                    ZnajdzPliki zp = new ZnajdzPliki(kv);
                    DialogResult dr = zp.ShowDialog();
                    if (dr == DialogResult.OK)
                    {
                        if (zp.czyOdnaleziono())
                        {
                            Zdjecie odnalezioneZdjecie = new Zdjecie(zp.OdnalezionyPlik);
                            odnalezioneZdjecie.ZweryfikujZdjecie();
                            lista.Add(odnalezioneZdjecie);
                            if (!enu.MoveNext())
                                break;
                        }
                    }
                    else if (dr == DialogResult.Cancel)
                    {
                        if (!enu.MoveNext())
                            break;
                    }
                    else if (dr == DialogResult.Abort)
                    {
                        break;
                    }
                }
            }

            return lista;
        }
        /// <summary>
        /// Metoda realizuj¹ca zapytanie sql do bazy i zwracaj¹ca liste zdjêc która zosta³a sworzona w oparciu o wynik zapytania
        /// </summary>
        /// <returns>lista zdjêæ która spe³nia warunki wyszukania</returns>
        private List<Zdjecie> ZwrocWyszukanie()
        {
            Db baza = new Db();
            baza.Polacz();
            List<Zdjecie> lista_zdjec = new List<Zdjecie>();

            try
            {
                string pelna_sciezka;
                DataSet ds;

                /*ds = baza.Select("select sciezka,nazwa_pliku from Zdjecie");

                foreach (DataTable t in ds.Tables)
                {
                    foreach (DataRow r in t.Rows)
                    {
                        if (!(r[0] is DBNull))
                        {
                            pelna_sciezka = r[0] + "\\" + r[1];

                            if (System.IO.File.Exists(pelna_sciezka) == true)
                            {
                                Zdjecie z = new Zdjecie(pelna_sciezka);
                                z.ZweryfikujZdjecie();
                            }
                        }
                    }
                }*/

                string sql = "select sciezka,nazwa_pliku from Zdjecie where ";

                foreach (string s in checkedListBox1.CheckedItems)
                {
                    switch (s)
                    {
                        case "po nazwie":
                            sql += " nazwa_pliku like \'%" + textBox1.Text + "%\' or nazwa_pliku like \'" + textBox1.Text + "%\' or nazwa_pliku like \'" + textBox1.Text + "\' or ";
                            break;
                        case "po komentarzu":
                            sql += " komentarz like \'%" + textBox1.Text + "%\' or komentarz like \'" + textBox1.Text + "%\' or komentarz like \'" + textBox1.Text + "\' or ";
                            break;
                        case "po autorze":
                            sql += " autor like \'%" + textBox1.Text + "%\' or autor like \'" + textBox1.Text + "%\' or autor like \'" + textBox1.Text + "\' or ";
                            break;
                    }

                }

                //MessageBox.Show(sql.Substring(0, sql.Length - 4));

                ds = baza.Select(sql.Substring(0, sql.Length - 4));

                foreach (DataTable t in ds.Tables)
                {
                    foreach (DataRow r in t.Rows)
                    {
                        if (!(r[0] is DBNull))
                        {
                            pelna_sciezka = r[0] + "\\" + r[1];

                            if (System.IO.File.Exists(pelna_sciezka) == true)
                            {
                                Zdjecie z = new Zdjecie(pelna_sciezka);
                                //z.ZweryfikujZdjecie();

                                if (z.CzyUstawioneId() == true)
                                {
                                    lista_zdjec.Add(z);
                                }
                            }
                        }
                    }
                }

            }
            catch (SqlException ex)
            {
                MessageBox.Show("blad bazy: " + ex.Message);
            }

            return lista_zdjec;
        }
Example #53
0
 public void Wykonaj(Zdjecie z, Stack<object> Argumenty)
 {
     if (z.Zaznaczenie.Width != 0 && z.Zaznaczenie.Height != 0)
     {
         if (z.Zaznaczenie.Width < 0)
         {
             z.Zaznaczenie.X += z.Zaznaczenie.Width;
             z.Zaznaczenie.Width *= -1;
         }
         if (z.Zaznaczenie.Height < 0)
         {
             z.Zaznaczenie.Y += z.Zaznaczenie.Height;
             z.Zaznaczenie.Height *= -1;
         }
         Bitmap cropped = new Bitmap(Math.Abs(z.Zaznaczenie.Width), Math.Abs(z.Zaznaczenie.Height), z.Duze.PixelFormat);
         Graphics g = Graphics.FromImage(cropped);
         g.DrawImage(z.Duze, new Rectangle(0, 0, cropped.Width, cropped.Height), z.Zaznaczenie, GraphicsUnit.Pixel);
         g.Dispose();
         foreach (PropertyItem pi in z.Duze.PropertyItems)
         {
             cropped.SetPropertyItem(pi);
         }
         z.Duze = cropped;
     }
 }