amiga-news ENGLISH VERSION
.
Links| Forum| Kommentare| News melden
.
Chat| Umfragen| Newsticker| Archiv
.

amiga-news.de Forum > Programmierung > datatypes bildgröße [ - Suche - Neue Beiträge - Registrieren - Login - ]

-1- [ - Beitrag schreiben - ]

05.09.2009, 18:30 Uhr

AGSzabo
Posts: 1663
Nutzer
hellau,

gibts ne möglichkeit mit datatypes die maße eines bildes rauszufinden ohne dass das ganze bild geladen und verarbeitet wird?

im moment mache ich es so wie unten aber das dauert mir zu lang.

code:
.get_size	; get image sizes of image from disk

		move.l	dtbase(pc),a6

		clr.l	-(a7)	; TAG_END
		move.l	#GID_PICTURE,-(a7)
		move.l	#DTA_GroupID,-(A7)
		move.l	#PMODE_V43,-(a7)
		move.l	#PDTA_DestMode,-(a7)
		clr.l	-(a7)		; dont remap
		move.l	#PDTA_Remap,-(A7)
		move.l	a7,a0
		jsr	-48(a6)		;	_LVONewDTObjectA
		lea	28(a7),a7
		move.l	d0,d2
		beq.b	.pop

		move.l	d0,a0
		clr.l	-(a7)
		clr.l	-(a7)	; TAG_END
		pea	4(a7)
		move.l	#PDTA_BitMapHeader,-(a7)
		move.l	a7,a2
		jsr	-66(a6)		;	GetDTAttrsA
		lea	12(a7),a7
		move.l	(a7)+,a0

		move.l	(a7),a2

		move.w	bmh_Width(a0),(a2)+
		move.w	bmh_Height(a0),(a2)

		move.l	d2,a0
		jsr	-54(a6)		; _LVODisposeDTObject


ps: außerdem hällt das datatype mein verzeichnis mit den bildern GELOCKT bis ich das bild dispose! geht das auch ohne?

--
Sam mini os4.1 -- e-uae 39bb2 -- A4000D 3.0 - Ariadne_II - ide DVD und HD -- A500 3.1 adide 50mb -- Duron 1600mhz Ubuntu Linux / WinXP -- BenQ FP93G TFT - 1048 like CRT - HP psc1110

[ Dieser Beitrag wurde von AGSzabo am 05.09.2009 um 18:57 Uhr geändert. ]

[ - Antworten - Zitieren - Direktlink - ]

06.09.2009, 12:04 Uhr

tboeckel
Posts: 124
Nutzer
@AGSzabo:

Mit nur 2 Funktionsaufrufen an die gewünschten Informationen zu kommen ist wohl kaum zu viel.

Der zeitliche Aufwand hängt natürlich von der Dateigröße und der tatsächlichen Größe des Bildes ab. Und nein, man kann das komplette Laden des Bildes nicht verhindern. Wozu auch? Immerhin hat man nach dem Aufruf von NewDTObject() kompletten Zugriff auf alle Bilddaten, egal wie oft man die abruft. Es gibt halt eine gewisse Mindestzeit, die einfach nötig ist, um an die Informationen heranzukommen.

Alternativ kannst du aber auch alles selbst machen, scheint ja ohnehin eher dein Ding zu sein. Dann brauchst du natürlich nur das allernötigste überhaupt zu machen, um zB die Bildgröße zu ermitteln. Dafür bleibt aber die Arbeit an die hängen genau das für jedes x-beliebige Bildformat selbst zu machen.

Bist du dir sicher, daß das komplette Verzeichnis gelockt wird, oder ist es vielleicht doch nur das einzelne Bild? Beim Bild ist die Sache ja wohl sehr einfach. So lange das Objekt existiert hast du Zugriff auf alle Daten, und das kann unter Umständen auch noch weitere Dateizugriffe bedeuten. Deswegen bleibt die Datei natürlich bis zum endgültigen DisposeDTObject() geöffnet und kann nicht gelöscht werden.

[ - Antworten - Zitieren - Direktlink - ]

06.09.2009, 14:32 Uhr

AGSzabo
Posts: 1663
Nutzer
@tboeckel:

ok, selbst bauen brauche ich als kompromiss nur fuer jpeg. leider finde ich weit und breit keine (verständliche) formatbeschreibung, zumindest keine die was über die maße aussagt.
--
Sam mini os4.1 -- e-uae 39bb2 -- A4000D 3.0 - Ariadne_II - ide DVD und HD -- A500 3.1 adide 50mb -- Duron 1600mhz Ubuntu Linux / WinXP -- BenQ FP93G TFT - 1048 like CRT - HP psc1110

[ - Antworten - Zitieren - Direktlink - ]

06.09.2009, 18:29 Uhr

MaikG
Posts: 5172
Nutzer
das evtl.?
http://www.jpeg.org/public/jfif.pdf

[ - Antworten - Zitieren - Direktlink - ]

06.09.2009, 19:03 Uhr

AGSzabo
Posts: 1663
Nutzer
@MaikG

nö, das hatte ich schon... danke
--
Sam mini os4.1 -- e-uae 39bb2 -- A4000D 3.0 - Ariadne_II - ide DVD und HD -- A500 3.1 adide 50mb -- Duron 1600mhz Ubuntu Linux / WinXP -- BenQ FP93G TFT - 1048 like CRT - HP psc1110

[ - Antworten - Zitieren - Direktlink - ]


-1- [ - Beitrag schreiben - ]


amiga-news.de Forum > Programmierung > datatypes bildgröße [ - Suche - Neue Beiträge - Registrieren - Login - ]


.
Impressum | Datenschutzerklärung | Netiquette | Werbung | Kontakt
Copyright © 1998-2024 by amiga-news.de - alle Rechte vorbehalten.
.