• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

c# PictureBox.ImageLocation ścieżka rzeczywista na ścieżkę względną

Aruba Cloud VPS - 50% taniej przez 3 miesiące!
+1 głos
477 wizyt
pytanie zadane 26 lipca 2020 w C# przez StevedeLosta Początkujący (290 p.)

Witam.

Wybieram ścieżkę 

pictureBox1.ImageLocation = ofd.FileName;

Następnie przypisuje ją do zmiennej

imageLocation = pictureBox1.ImageLocation;

Z tej zmiennej zapisuje ścieżkę do bazySQL. Problem polega na tym że ścieżka jest pełna czyli C:\folder\project\picture\picture.jpg

A mi zależy żeby była względna czyli zaczynała się od miejsca gdzie jest główny project np: "picture\picture.jpg" 

Proszę o sugestię, czego mam się nauczyć?

Dziękuje.

3 odpowiedzi

+1 głos
odpowiedź 26 lipca 2020 przez piotrsz109 Stary wyjadacz (13,730 p.)
komentarz 26 lipca 2020 przez StevedeLosta Początkujący (290 p.)
edycja 27 lipca 2020 przez StevedeLosta
Dziękuje za podpowiedź.

Rozwiązanie niżej.
+1 głos
odpowiedź 27 lipca 2020 przez VBService Ekspert (256,320 p.)
edycja 27 lipca 2020 przez VBService
            string app_path = Environment.CurrentDirectory;
            string img_path = "img\\img1.jpg";
            
            imageLocation = Path.Combine(app_path, img_path);
            label1.Text = imageLocation;

            imageLocation = imageLocation.Replace(Environment.CurrentDirectory + "\\", "");
            label2.Text = imageLocation;

Environment.CurrentDirectory Property ]

            string app_path = Environment.CurrentDirectory;
            string img_path = "img\\img2.jpg";
            
            imageLocation = Path.Combine(app_path, img_path);
            label1.Text = imageLocation;

            imageLocation = string.Concat(Directory.GetParent(app_path).Name, "\\", Path.GetFileName(app_path));
            label2.Text = imageLocation;

Concatenate String - C# ] [ Directory.GetParent(String) Method ]

0 głosów
odpowiedź 27 lipca 2020 przez StevedeLosta Początkujący (290 p.)

Dziękuje za podpowiedź. 

Rozwiązanie:

imageLocation = pictureBox1.ImageLocation; //D:\StevedeLosta\Visual_Studio\C#_StevedeLosta\Magazyn\Magazyn\bin\Debug\magazynJpg\Z20.png
ConvertPath();

void ConvertPath()
        {

            string[] files;
            files = imageLocation.Split(';');
            foreach (string file in files) 
            {
                imageLocation = @"magazynJpg\" + Path.GetFileName(file);
            }

        }

Po konwersji ładuje do bazySQL tylko ścieżke "magazynJpg\Z20.png". 

A tutaj uproszczona wersja kodu bez pętli "foreach"

void ConvertPath()
        {
            string[] files;
            files = imageLocation.Split(';');
            string file = files[0];
            imageLocation = @"magazynJpg\" + Path.GetFileName(file);
        }
komentarz 27 lipca 2020 przez VBService Ekspert (256,320 p.)
edycja 27 lipca 2020 przez VBService

To jest "naciągana, uproszczona" wink wersja, pobierasz tylko pierwszy "obrazek" z kolekcji.

Spróbuj pobrać ścieżkę do bazy gdy będziesz mieć więcej obrazków w katalogu "magazynJpg". np.: magazynJpg\Z20.png, magazynJpg\Z21.png, magazynJpg\Z22.png wink

Druga sprawa:

magazynJpg\Z20.png

chyba raczej:

magazynJpg\Z20.jpg

magazynPng\Z20.png itd. wink

komentarz 27 lipca 2020 przez StevedeLosta Początkujący (290 p.)

Tak, naciągana ale w zupełności wystarczająca ponieważ tutaj chodziło mi tylko o skrócenie ścieżki do postaci w której zapisywana jest do SQL. To ma w późniejszym czasie uchronić program przed zgubieniem ścieżki do png gdy projekt znajdzie się w innym katalogu.smiley

Mam już w katalogu dużo png i wszystko działa poprawnie.

Magazyn

Katalog "magazyJpg" utworzyłem wcześniej ogólnie z myślą o zdjęciach które głównie kojarzą mi się z jpg no a wyszło jak wyszło i trafiają tam png.

Podobne pytania

0 głosów
2 odpowiedzi 543 wizyt
pytanie zadane 8 lipca 2020 w HTML i CSS przez Szyszka Gaduła (3,510 p.)
0 głosów
3 odpowiedzi 1,415 wizyt
pytanie zadane 9 listopada 2017 w Systemy operacyjne, programy przez Milesq Nałogowiec (32,020 p.)
0 głosów
1 odpowiedź 291 wizyt
pytanie zadane 18 października 2017 w Grafika i multimedia przez DODO Bywalec (2,950 p.)

93,176 zapytań

142,185 odpowiedzi

321,978 komentarzy

62,506 pasjonatów

Advent of Code 2024

Top 15 użytkowników

  1. 1401p. - dia-Chann
  2. 1380p. - Łukasz Piwowar
  3. 1372p. - CC PL
  4. 1370p. - Łukasz Eckert
  5. 1351p. - Tomasz Bielak
  6. 1328p. - Michal Drewniak
  7. 1312p. - Łukasz Siedlecki
  8. 1302p. - rucin93
  9. 1273p. - Adrian Wieprzkowicz
  10. 1232p. - Mikbac
  11. 1181p. - rafalszastok
  12. 1169p. - Grzegorz Aleksander Klementowski
  13. 1155p. - Piotr Aleksandrowicz
  14. 1149p. - Michał Telesz
  15. 1127p. - Mariusz Fornal
Szczegóły i pełne wyniki

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Wprowadzenie do ITsec, tom 1 Wprowadzenie do ITsec, tom 2

Można już zamawiać dwa tomy książek o ITsec pt. "Wprowadzenie do bezpieczeństwa IT" - mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy aż 15% zniżki! Dziękujemy ekipie Sekuraka za fajny rabat dla naszej Społeczności!

...