![]() |
Bildgröße von Bilddateien
Wie kann man die Bildgröße (Breite und Höhe) von jpg, jpeg, gif und png Dateien ermitteln?
|
Re: Bildgröße von Bilddateien
Zitat:
.tiff und .ico nicht vergessen. |
@Daniel B: "Schlafmütze" :mrgreen:, sieht das Thema, antwortet und merkt nicht dass es in der falschen Sparte steht und verschieb es dann logischer weise auch nicht. :roll:
|
Zitat:
|
Das ist im allgemeinen anders für jeden Typ. Bei
![]() Delphi kann JPEG laden - macht es leichter. Torry bietet Komponenten für GIF - laden und ebenfalls auslesen. Für andere Grafikformate hilft nur die oben genannte Webseite. |
@TPercon:
Also, bei jpg-bildern kannst du's ja über'n verstecktes image-feld mit autosize:=true auslesen. und wegen den gif-pics: schau mal auf ![]() greetz, -movax- | ![]() |
Habe mir von wotsit.org Infos runtergeladen und versuche seit 3 Tagen da vorwärts zu kommen. Schaffe aber noch nichtmal einen richtigen Ansatz fürs Auslesen der Bildinfos für ein Format zu finden, da die Codebeispiele sich z.B. beim jpeg über mehrere Units erstrecken und somit etwas durcheinander herrscht. Kennt jemand vielleicht nen brauchbaren Ansatz für irgendeins der obigen Formate ohne ne extra Komponente zu benutzen.
|
ich sag doch: bei jpeg kannst du's über ne unsichtbare image-box machen, einfach die unit jpeg einbinden (ist bei delphi dabei), dann klappt's auch mit den jpegs ;)
|
Das möchte ich ja gerade nicht. Ich möchte die Bildgröße aus den markern auslesen und keine Komponente oder zusätzliche Unit verwenden.
|
Hi,
also GIF ist recht einfach. Infos von ![]()
Code:
Die GIF Signatur ist immer folgender Aufbau:
+-----------------------+
| +-------------------+ | | | GIF Signature | | | +-------------------+ | | +-------------------+ | | | Screen Descriptor | | | +-------------------+ | | +-------------------+ | | | Global Color Map | | | +-------------------+ | . . . . . . | +-------------------+ | ---+ | | Image Descriptor | | | | +-------------------+ | | | +-------------------+ | | | | Local Color Map | | |- Repeated 1 to n times | +-------------------+ | | | +-------------------+ | | | | Raster Data | | | | +-------------------+ | ---+ . . . . . . |- GIF Terminator -| +-----------------------+ GIF87a, also drei Bytes für "GIF" und drei für die Version. Anschließend kommt der "Screen Discriptor"
Code:
Da stehen sofort Breite und Höhe des Bildes. Kurz, die Bytes 6 und 7 (0-basiert zählend) speichern die Breite, die Bytes 8 und 9 die Höhe. Wenn Du diese einfach mittles AssignFile, und Read ausließt, dann hasst Du die Ausmaße des GIF Bildes. Für JPEGs würde ich Dir dringend empfehlend diese in ein TBitmap zu laden (Keine Komponente!) und Dir die Werte für Breite und Höhe zurückgeben zu lassen, da es bei diesem Typ ungleich schwerer wird. Bedenke, JPEG können auch im Video-Stream Format (JFIF) kommen.
7 6 5 4 3 2 1 0 Byte
# +---------------+ | | 1 +-Screen Width -+ Raster width in pixels (LSB first) | | 2 +---------------+ | | 3 +-Screen Height-+ Raster height in pixels (LSB first) | | 4 +-+-----+-+-----+ M = 1, Global color map follows Descriptor |M| cr |0|pixel| 5 cr+1 = # bits of color resolution +-+-----+-+-----+ pixel+1 = # bits/pixel in image | background | 6 background=Color index of screen background +---------------+ (color is defined from the Global color |0 0 0 0 0 0 0 0| 7 map or default map if none specified) +---------------+ :cat: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:09 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz