Loade Gif og Bmp fil som Jpeg fil

Tags:    delphi

Hvordan kan jeg loade et TImage med en Gif eller en Bmp fil?
Ved godt der findes komponenter ol. men ville gerne slippe for disse.

Måden jeg havde forestillet mig at gøre det på var således:
Åbne gif filen, gemme gif filen SOM en Jpeg fil til en MemoryStream, loade TImage.Picture fra Memorystreamen.

Men jeg ved ikke helt hvordan jeg skal gøre ovenstående og jeg kunne ikke få det til at virke da jeg forsøgte. Så håber der lige er nogen der kan give en hjælpende hånd her.

Mvh.
Rune Jensen
---------------------------------------------------------------------------
##The one who laugh last is the one who think slowest!##
---------------------------------------------------------------------------



7 svar postet i denne tråd vises herunder
1 indlæg har modtaget i alt 1 karma
Sorter efter stemmer Sorter efter dato
Billeder er kun data, så derfor skal du bare kende formatet, for at kunne "parse" dem rigtigt.
Programmer som Paint overholder en standard for "parsing" af dataene, der så bliver vist.
Beklager, hvis du allerede vidste dette, men synes bare lige at jeg burde nævne det.

http://www.wotsit.org
Vil foreslå "Graphics Interchange Format (Version 87) [CompuServe Inc.]" og "Full JPEG standard (PDF version) [ITU/CCITT]", men har kun lige skimmet igennem dem, så det kan godt være at du også bør tjekke de andre kilder.

Men vil lige advare dig: GIF og JPEG formaterne bruger ikke simpel komprimering, som fx TGA med RLE, så du får nok at lave med bare at skrive en parser (i hvert fald, hvis de skal virke med de fleste billeder af en bestemt type).

Hovsa, overså at du også overvejede BMP.
Det format bør du helt sikkert vælge, for det er næsten lige ud af landevejen, hvorfor det heller ikke er komprimeret.
Targa (TGA) bør du også overveje, for det er faktisk lige så simpelt som BMP, men det kan også indeholde en alpha kanal eller flere, plus valgfri Run-Length Encoding (RLE) komprimering. Der er også beskrivelser af BMP og TGA (samt de fleste andre ofte brugte formater du kan komme i tanke om) på wotsit.

Så vidt jeg husker er der også en BMP parser i koden til OpenGL artiklerne, men du bør ændre den, så den henter alle pixels ind på samme tid for derefter at manipulere dem, i stedet for at hente dem en efter en (det vil forøge hastigheden mange, mange gange).

1101110100010110000101000001

[Redigeret d. 21/03-05 16:41:14 af Nicolai Lyster Fersner]



Hmm har fundet ud af bmp men mangler stadig. Jeg ved ikke rigtigt hvor jeg skal starte.
Så hvis du kender nogle gode steder med artikler omkring emnet må du meget gerne lige skrive. Husk at formålet er enkelt nok at loade et GIF billede ind i en TImage.

Mvh.
Rune Jensen
---------------------------------------------------------------------------
##The one who laugh last is the one who think slowest!##
---------------------------------------------------------------------------



Hmm har fundet ud af bmp men mangler stadig. Jeg ved ikke rigtigt hvor jeg skal starte.
Så hvis du kender nogle gode steder med artikler omkring emnet må du meget gerne lige skrive. Husk at formålet er enkelt nok at loade et GIF billede ind i en TImage.

Mvh.
Rune Jensen
---------------------------------------------------------------------------
##The one who laugh last is the one who think slowest!##
---------------------------------------------------------------------------


Øhm, enkelt? Det ville jeg nu ikke lige kalde en sådan opgave i dette tilfælde.

Du skriver også; "Hmm har fundet ud af bmp men mangler stadig" - men så bliver jeg jo nødt til at spørge; mangler stadig hvad?

1101110100010110000101000001

[Redigeret d. 22/03-05 02:08:31 af Nicolai Lyster Fersner]



Hmm har fundet ud af bmp men mangler stadig. Jeg ved ikke rigtigt hvor jeg skal starte.
Så hvis du kender nogle gode steder med artikler omkring emnet må du meget gerne lige skrive. Husk at formålet er enkelt nok at loade et GIF billede ind i en TImage.

Mvh.
Rune Jensen
---------------------------------------------------------------------------
##The one who laugh last is the one who think slowest!##
---------------------------------------------------------------------------


Øhm, enkelt? Det ville jeg nu ikke lige kalde en sådan opgave i dette tilfælde.

Du skriver også; "Hmm har fundet ud af bmp men mangler stadig" - men så bliver jeg jo nødt til at spørge; mangler stadig hvad?

1101110100010110000101000001

[Redigeret d. 22/03-05 02:08:31 af Nicolai Lyster Fersner]


Uuups:) Der skulle have stået mangler jo stadig Gif ;)

Mvh.
Rune Jensen
---------------------------------------------------------------------------
##The one who laugh last is the one who think slowest!##
---------------------------------------------------------------------------



OK, blev jo bare lige nødt til at være sikker ;-)

Men har du kigget dokumenterne om GIF igennem?
Det er jo nok det første du bør gøre, hvis du vil lave en sådan loader.
Så vidt jeg forstod, så ville du jo selv lave den, så du behøver vel ikke andet end dokumenterne?

1101110100010110000101000001

[Redigeret d. 22/03-05 11:44:55 af Nicolai Lyster Fersner]



OK, blev jo bare lige nødt til at være sikker ;-)

Men har du kigget dokumenterne om GIF igennem?
Det er jo nok det første du bør gøre, hvis du vil lave en sådan loader.
Så vidt jeg forstod, så ville du jo selv lave den, så du behøver vel ikke andet end dokumenterne?

1101110100010110000101000001

[Redigeret d. 22/03-05 11:44:55 af Nicolai Lyster Fersner]


Nå fandt en meget enklere metode :)

Noget af det samme som jeg brugte ved BMP.

Men tak alligevel.

Mvh.
Rune Jensen
---------------------------------------------------------------------------
##The one who laugh last is the one who think slowest!##
---------------------------------------------------------------------------



OK, blev jo bare lige nødt til at være sikker ;-)

Men har du kigget dokumenterne om GIF igennem?
Det er jo nok det første du bør gøre, hvis du vil lave en sådan loader.
Så vidt jeg forstod, så ville du jo selv lave den, så du behøver vel ikke andet end dokumenterne?

1101110100010110000101000001

[Redigeret d. 22/03-05 11:44:55 af Nicolai Lyster Fersner]

Nå fandt en meget enklere metode :)

Noget af det samme som jeg brugte ved BMP.

Men tak alligevel.

Mvh.
Rune Jensen
---------------------------------------------------------------------------
##The one who laugh last is the one who think slowest!##
---------------------------------------------------------------------------

Mvh.
Rune Jensen
---------------------------------------------------------------------------
##The one who laugh last is the one who think slowest!##
---------------------------------------------------------------------------



t