AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Teil-Records aus Stream lesen

Ein Thema von Neutral General · begonnen am 28. Jul 2007 · letzter Beitrag vom 29. Jul 2007
Antwort Antwort
Seite 2 von 2     12   
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#11

Re: Teil-Records aus Stream lesen

  Alt 28. Jul 2007, 16:08
Ok ja hab jetzt Char Arrays benutzt aber ich hätte da noch eine kleine Frage am Rande:

Zitat von GIF 10. Byte:
BitNr: 2 - 4
Beispiel: <111>
Erklärung: Bit/Pixel minus 1 (hier: 8 Bit/Pixel)
Dieses Byte sieht bei mir jetzt bei einem Bild so aus:

1 000 0 100

1: Globale Farbtabelle = true
000: 255 Bit/Pixel ?
0 : Farbtabelle nicht sortiert
100: 96 Byte große Tabelle

Das müsste dieses Byte nach meiner Dateispezifikation aussagen. Aber 0 bzw 255 Bits/Pixel.. Wie soll ich das verstehn? Also 8 Bit/Pixel versteh ich ja noch.. da wird in je einem Byte der Index der Farbe aus der Farbtabelle stehn. aber was ist das?

Gruß
Neutral General
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#12

Re: Teil-Records aus Stream lesen

  Alt 28. Jul 2007, 17:11
Wenn ich in die Original-Spezifikation von CompuServe schaue, dann möchte ich die Flags anders interpretieren:

Code:
1 000 0 100
        --- 32 entries in GCT
      - ignore (GIF 87a)
  --- one bit per color in original palette
- next block is GCT
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#13

Re: Teil-Records aus Stream lesen

  Alt 28. Jul 2007, 18:04
Zitat von marabu:
Wenn ich in die Original-Spezifikation von CompuServe schaue, dann möchte ich die Flags anders interpretieren:

Code:
1 000 0 100
        --- 32 entries in GCT
      - ignore (GIF 87a)
  --- one bit per color in original palette
- next block is GCT
Naja das ist jetzt nicht soo anders als ich das geschrieben habe ... In meiner Spezifikation steht das erste Bit (bzw ja eigentl ich isses ja das letzte) dafür das es eine Globale Tabelle gibt. Und es steht dabei das nach dem Header die Tabelle kommt wenns eine gibt.. Die beiden Informationen zusammen bedeuten im Prinzip das gleiche... 32 entries à 3 byte und 96 Bytes insgesamt groß ist das gleiche wenn für jede Farbe 3 Bytes benutzt werden.

Was ich aber trotzdem nicht verstehe ist

Zitat:
one bit per color in original palette
Was hat das zu bedeuten? Ein Bit pro Farbe in der Original-Palette?...

Gruß
Neutral General
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#14

Re: Teil-Records aus Stream lesen

  Alt 28. Jul 2007, 18:21
Vielleicht bedeutet es: Mit einem Bit pro Basisfarbe (R,G,B) wird ein Farbraum mit 8 Farben (dual: 000 ... 111) festgelegt.
Du musst aber diesen Wert nirgends verwenden, soweit ich sehen kann.
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#15

Re: Teil-Records aus Stream lesen

  Alt 28. Jul 2007, 20:43
mhhh... k also das heißt ich hab im eigentlichen Bild so oder so immer nur ein Byte pro Farbe das auf eine Farbe in der Tabelle verweißt? Egal was da jetzt für Werte bei raus kommen bei diesem Bit/Pixel ?
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
Dax
(Gast)

n/a Beiträge
 
#16

Re: Teil-Records aus Stream lesen

  Alt 28. Jul 2007, 21:06
Zitat von GIF 10. Byte:
BitNr: 2 - 4
Beispiel: [x = ] <111>
Erklärung: Bit/Pixel minus 1 (hier: 8 Bit/Pixel)
Ich interpretiere das so: x + 1 = Bit/Pixel. Also 000 -> 1 Bit/Pixel - zwei Farben, 001 -> 2 Bit/Pixel - 4 Farben, usw.
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#17

Re: Teil-Records aus Stream lesen

  Alt 28. Jul 2007, 23:12


ahhh

das klingt logisch... Danke
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#18

Re: Teil-Records aus Stream lesen

  Alt 29. Jul 2007, 09:01
Guten Morgen,

ich bleibe vorerst bei meiner Interpretation. Der Wert 7 (dual 111) für die color resolution ist nach meiner Auffassung die Anzahl Bits pro Farbkanal im von GIF verwendeten RGB-Farbraum. Die größtmögliche Farbtiefe entspricht dann 24-bit Farben (TrueColor), die kleinstmögliche Farbtiefe ergibt sich zwangsläufig. Die Bezeichnung bit/pixel ist irreführend.

Compuserve schreibt in der GIF89a Specification

iv) Color Resolution - Number of bits per primary color available
to the original image, minus 1. This value represents the size of
the entire palette
from which the colors in the graphic were
selected, not the number of colors actually used in the graphic.
For example, if the value in this field is 3, then the palette of
the original image had 4 bits per primary color available to create
the image. This value should be set to indicate the richness of
the original palette, even if not every color from the whole
palette is available on the source machine.

Die Hervorhebungen stammen von mir und beziehen sich auf meine Interpretation.

Zitat von Neutral General:
das klingt logisch
Logisch ist für mich, dass man sich auf der Suche nach Informationen auf Primärquellen konzentriert. Nur wenn diese nicht erreichbar sind, sind auch Sekundärquellen annehmbar. Etwaige Ungenauigkeiten bei Sekundärquellen muss man durch Abgleich mehrerer Quellen zu eliminieren trachten. Hat man dann immer noch Verständnisprobleme, dann hilft vielleicht das Studium am Objekt. Die Reihenfolge ist wichtig.

Freundliche Grüße
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#19

Re: Teil-Records aus Stream lesen

  Alt 29. Jul 2007, 13:24
Zitat von marabu:
Guten Morgen,

ich bleibe vorerst bei meiner Interpretation. Der Wert 7 (dual 111) für die color resolution ist nach meiner Auffassung die Anzahl Bits pro Farbkanal im von GIF verwendeten RGB-Farbraum. Die größtmögliche Farbtiefe entspricht dann 24-bit Farben (TrueColor), die kleinstmögliche Farbtiefe ergibt sich zwangsläufig. Die Bezeichnung bit/pixel ist irreführend.

Freundliche Grüße
Mh naja also 24 Bit wären dann 3 Byte pro Farbe also 1 Byte pro Kanal.. Also so das übliche.. Naja wie bringt man eine Farbe in 1 Bit pro Kanal unter? Und ich habe KEIN schwarz-weiß GIF hier... Vielleicht reden wir (oder ich) aneinander vorbei aber in meiner Spezifikation (der ich mittlerweile selbst etwas misstraue) stehn die Farben der Palette in der Form RR GG BB RR GG BB RR GG BB drin...

Gruß
Neutral General
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#20

Re: Teil-Records aus Stream lesen

  Alt 29. Jul 2007, 15:14
Du verschwendest deine Aufmerksamkeit an eine Information, deren Wert für dich zweifelhaft ist. Die Größe der ursprünglichen Palette (welche dem Generator des Bildes zur Verfügung stand) könnte sogar ein willkürlicher Wert sein. Ich denke du brauchst ihn nicht, aber ich kenne mich mit GIF (wie mit so vielem anderen) nicht aus und kann deshalb auch falsch liegen.

Die Farben in GCT und LCT sind laut Spezifikation RGB Byte-Tripel. Die GCT kannst du aber getrost vergessen, solange der Local Image Descriptor eine Local Color Table aufweist. Dort würde ich mal nachsehen.

Vielleicht solltest du wirklich ein oder mehrere (kleine) Referenzbilder erzeugen, bereit stellen und die Format-Diskussion auf diesen aufbauen.

Freundliche Grüße
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:53 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz