/// <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()); } }
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()); }
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; }
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; } }
/// <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; }
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; }
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; }
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()); }
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 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 })); } }
/// <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(); }
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 })); } } }
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); }
/// <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 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(); }
/// <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); } } }
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(); } }
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(); }
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(); }
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()); }
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(); } }
/// <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 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(); }
/// <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(); }
/// <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(); }
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; }
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; } }