Rozszerzenie konwersji do formatu BMP o inne znane formaty.

dział ogólny

Rozszerzenie konwersji do formatu BMP o inne znane formaty.

Nowy postprzez Peter_M » czwartek, 7 lutego 2019, 13:35

Witam, bazując na poradzie dotyczącej konwersji pliku JPG do formatu BMP Link chciałem rozszerzyć tę funkcjonalność o inne znane formaty typu PNG, Gif. Nie było by w tym nic dziwnego gdyby nie jeden problem. Otóż próbując zaimplementować swój zamysł za skarby świata nie potrafię tego połączyć w całość. Mam tu na myśli mechanizm tzn.
Jeżeli zostanie otworzone okno wyboru plików, przykładowo, OpenPictureDialog lub Open Dialog, to po wybraniu filtru powiedzmy formatu PNG, ma się wykonać kod odpowiedzialny za konwersję formatu PNG do BMP, analogicznie gdy wybiorę format gif, ma się wykonać kod odpowiedzialny za konwersję formatu GIF do BMP, itd. Pojedynczo kiedy zamienię kod odpowiedzialny za konwersję do formatu JPG, to wszystko działa tak jak chcę.
Swój zamysł próbowałem zrobić wywołując metodę switch and case i przypisując do filterindexów poszczególne casy, ale bez skutku.
Co więcej, najlepszy efekt udało mi się uzyskać wywołując zdarzenie onChangeType komponentu Open Picture Dialog oraz sprawdzając ifem FileExists, ale to działa dopiero za drugim razem, kiedy przeładuję obrazek, nie mam pojęcia jak to uczynić aby zadziałało za pierwszym razem.
Bo równie dobrze mógłbym na formę dodać kilka Radiobuttonów, albo checkboxów i w poszczególne metody wpisać kody odpowiedzialne za konwersję innych formatów, ale jeśli możliwe jest w komponencie OpenPictureDialog to bardzo poprosił bym o poradę, w jaki sposób mogę to zrobić?


Swoją drogą, mam nadzieję że tym razem nie jest chaotycznie i w miarę jasno piszę o co mi chodzi :)
Avatar użytkownika
Peter_M
Bladawiec
Bladawiec
 
Posty: 5
Dołączył(a): poniedziałek, 3 grudnia 2018, 23:36
Podziękował : 4
Otrzymał podziękowań: 0
System operacyjny: Windows 10
Kompilator: RAD Studio 10.3
SKYPE: pikus_666
Gadu Gadu: 5079748
    WindowsChrome

Re: Rozszerzenie konwersji do formatu BMP o inne znane formaty.

Nowy postprzez Mironas » czwartek, 7 lutego 2019, 15:18

Jeśli Cię dobrze zrozumiałem, to wybierasz w OpenDialog-u plik a potem chcesz określić jaki typ pliku został wybrany.
Pobierz nazwę pliku z OpenDialog1->FileName a potem ustal rozszerzenie tego pliku:
KOD cpp:     UKRYJ  
  String plik = OpenDialog1->FileName;
  String ext = ExtractFileExt(plik).LowerCase();
  if ( ext == ".jpg" || ext == ".jpeg" )
  {/* tutaj obsługujesz JPG-i */}
  else if ( ext == ".png" )
  {/* tutaj obsługujesz pliki PNG */}
  // i tak dalej
 

Za ten post autor Mironas otrzymał podziękowanie od:
Peter_M
Avatar użytkownika
Mironas
Programista I
Programista I
 
Posty: 441
Dołączył(a): poniedziałek, 2 stycznia 2012, 19:02
Podziękował : 21
Otrzymał podziękowań: 63
System operacyjny: Windows 10
Kompilator: C++Builder 10.2 Tokyo
TMS Components Pack
Gadu Gadu: 0
    WindowsChrome

Re: Rozszerzenie konwersji do formatu BMP o inne znane formaty.

Nowy postprzez Peter_M » czwartek, 7 lutego 2019, 19:47

Wiesz co, to może mieć sens. Spróbuję.
Tak dokładnie o to mi chodziło, wybieram filtr z rozszerzeniem w open dialogu jakie chce obsługiwać i plik.
Poinformuje czy zadziałało.
//Edit
Zadziałało, faktycznie twój zamysł był właściwym rozwiązaniem tej zagwozdki. Serdecznie dziękuję za okazaną pomoc.
Avatar użytkownika
Peter_M
Bladawiec
Bladawiec
 
Posty: 5
Dołączył(a): poniedziałek, 3 grudnia 2018, 23:36
Podziękował : 4
Otrzymał podziękowań: 0
System operacyjny: Windows 10
Kompilator: RAD Studio 10.3
SKYPE: pikus_666
Gadu Gadu: 5079748
    LinuxChrome


  • Podobne tematy
    Odpowiedzi
    Wyświetlone
    Ostatni post

Powrót do Ogólne problemy z programowaniem

Kto przegląda forum

Użytkownicy przeglądający ten dział: Google [Bot] i 6 gości

cron