Gdiplus::Image - Zapis do pliku

problemy z tworzeniem aplikacji graficznych oraz audio i wideo

Re: Gdiplus::Image - Zapis do pliku

Nowy postprzez Mironas » sobota, 29 września 2012, 16:46

Cyfrowy Baron napisał(a):
Mironas napisał(a):Przy małych, pojedynczych plikach można też zrobić podwójne RotateFlip obracając obraz np 2 razy w pionie. Prostsze do wykonania.

Tego nie polecam, gdyż obrazek ulegnie modyfikacji.

No właśnie pomyślałem sobie że Flip w pionie będzie najmniej modyfikował obraz bo to jest tylko zamiana kolejności wierszy. Ale oczywiście nie wiem na pewno jak to jest realizowane. Poza tym w przypadku pliku PNG gdzie jest używana kompresja bezstratna chyba nie ma mowy o modyfikacji obrazu?
Avatar użytkownika
Mironas
Programista I
Programista I
 
Posty: 446
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
    Windows XPChrome

Re: Gdiplus::Image - Zapis do pliku

Nowy postprzez Cyfrowy Baron » sobota, 29 września 2012, 20:00

Mironas napisał(a):Poza tym w przypadku pliku PNG gdzie jest używana kompresja bezstratna chyba nie ma mowy o modyfikacji obrazu?


Z tego co się orientuję to każdy format graficzny poza bitmapą jest kompresowany!?
Avatar użytkownika
Cyfrowy Baron
Administrator
Administrator
 
Posty: 4727
Dołączył(a): niedziela, 13 lipca 2008, 15:17
Podziękował : 12
Otrzymał podziękowań: 444
System operacyjny: Windows 7 x64 SP1
Kompilator: Embarcadero RAD Studio XE2
C++ Builder XE2 Update 4
SKYPE: cyfbar
Gadu Gadu: 0
    Windows XPFirefox

Re: Gdiplus::Image - Zapis do pliku

Nowy postprzez Mironas » niedziela, 30 września 2012, 10:27

Cyfrowy Baron napisał(a):
Mironas napisał(a):Poza tym w przypadku pliku PNG gdzie jest używana kompresja bezstratna chyba nie ma mowy o modyfikacji obrazu?

Z tego co się orientuję to każdy format graficzny poza bitmapą jest kompresowany!?

Miałem na myśli że w przypadku PNG mamy kompresje bezstratną więc tak na logikę operacje typu 'obróć obraz w tą i z powrotem' nie powinny powodować żadnej modyfikacji obrazu. W przypadku JPG (kompresja stratna) już nie był bym tego taki pewien.
Avatar użytkownika
Mironas
Programista I
Programista I
 
Posty: 446
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
    Windows XPChrome

Re: Gdiplus::Image - Zapis do pliku

Nowy postprzez polymorphism » niedziela, 30 września 2012, 10:34

A nie wydaje Ci się, że kręcenie obrazkiem tylko po to, żeby zapisać jakieś metadane z tego samego obiektu Image jest delikatnie mówiąc niezbyt rozsądne?
C++ Reference - opis wszystkich klas STL-a i funkcji C.
Avatar użytkownika
polymorphism
Doświadczony Programista ● Moderator
Doświadczony Programista ● Moderator
 
Posty: 2187
Dołączył(a): piątek, 19 grudnia 2008, 13:04
Podziękował : 0
Otrzymał podziękowań: 204
System operacyjny: Windows 7 Pro
Windows 8.1
Linux Mint 19
Kompilator: Visual Studio 2015 Community
CodeLite (MinGW)
MSYS2 (MinGW, clang)
g++
Gadu Gadu: 0
    Windows XPFirefox

Re: Gdiplus::Image - Zapis do pliku

Nowy postprzez Cyfrowy Baron » niedziela, 30 września 2012, 11:05

Szczególnie, że w przypadku zmodyfikowania obrazu zapisanie do tego samego pliku zajmie dokładnie tyle samo czasu co zapisanie do innego pliku - tak sądzę, wszak dane ulegną zmianie.
Avatar użytkownika
Cyfrowy Baron
Administrator
Administrator
 
Posty: 4727
Dołączył(a): niedziela, 13 lipca 2008, 15:17
Podziękował : 12
Otrzymał podziękowań: 444
System operacyjny: Windows 7 x64 SP1
Kompilator: Embarcadero RAD Studio XE2
C++ Builder XE2 Update 4
SKYPE: cyfbar
Gadu Gadu: 0
    Windows XPFirefox

Re: Gdiplus::Image - Zapis do pliku

Nowy postprzez Mironas » niedziela, 30 września 2012, 12:05

polymorphism napisał(a):A nie wydaje Ci się, że kręcenie obrazkiem tylko po to, żeby zapisać jakieś metadane z tego samego obiektu Image jest delikatnie mówiąc niezbyt rozsądne?

Jeśli dzięki temu będę mógł w prosty sposób zapisać plik to czemu nie? Tym bardziej że dzięki temu unikamy komplikacji typu: plik tymczasowy już istnieje!

Cyfrowy Baron napisał(a):Szczególnie, że w przypadku zmodyfikowania obrazu zapisanie do tego samego pliku zajmie dokładnie tyle samo czasu co zapisanie do innego pliku - tak sądzę, wszak dane ulegną zmianie.

Jak napisałem wybrałem sposób z zapisem do pliku tymczasowego jako wg mnie najlepszy. Sposób z podwójnym obracaniem obrazu jako drugie ciekawe rozwiązanie w przypadku małego obrazu. Oba sposoby są skuteczne i oba mają wady i zalety. Do wyboru co kto lubi.
Avatar użytkownika
Mironas
Programista I
Programista I
 
Posty: 446
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
    Windows XPChrome

Re: Gdiplus::Image - Zapis do pliku

Nowy postprzez polymorphism » niedziela, 30 września 2012, 12:28

Jeśli dzięki temu będę mógł w prosty sposób zapisać plik to czemu nie?

A temu nie, ponieważ w dokumentacji masz jasno napisane, że zapisywanie pod tą samą nazwą jest niedozwolone. Dziś Ci działa, jutro nie (bo np. autorzy zmienili coś w implementacji GDI+, zachowując przy tym zgodność API). A mówiąc tak bardziej ogólnie: są głupie rozwiązania i te racjonalne.

Tym bardziej że dzięki temu unikamy komplikacji typu: plik tymczasowy już istnieje!

Tego nie rozumiem. Jeśli funkcja zapisująca zwróci sukces, to znaczy, że plik jest już na dysku. Tworzysz sztuczny problem. Zresztą zapis bezpośrednio do pliku źródłowego ma tę wadę, że jeśli coś pójdzie nie tak w trakcie zapisywania, tracisz plik źródłowy.
C++ Reference - opis wszystkich klas STL-a i funkcji C.
Avatar użytkownika
polymorphism
Doświadczony Programista ● Moderator
Doświadczony Programista ● Moderator
 
Posty: 2187
Dołączył(a): piątek, 19 grudnia 2008, 13:04
Podziękował : 0
Otrzymał podziękowań: 204
System operacyjny: Windows 7 Pro
Windows 8.1
Linux Mint 19
Kompilator: Visual Studio 2015 Community
CodeLite (MinGW)
MSYS2 (MinGW, clang)
g++
Gadu Gadu: 0
    Windows XPFirefox

Re: Gdiplus::Image - Zapis do pliku

Nowy postprzez Mironas » niedziela, 30 września 2012, 13:32

polymorphism napisał(a):ponieważ w dokumentacji masz jasno napisane, że zapisywanie pod tą samą nazwą jest niedozwolone. Dziś Ci działa, jutro nie

Słusznie. Kupuję argument.
Avatar użytkownika
Mironas
Programista I
Programista I
 
Posty: 446
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
    Windows XPChrome

Poprzednia strona

  • Podobne tematy
    Odpowiedzi
    Wyświetlone
    Ostatni post

Powrót do Aplikacje multimedialne, graficzne

Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zalogowanych użytkowników i 2 gości

cron