Comprend | | | | | Tolle Include de Dieter Zornow, um Bildausmasse de Bildern aus Fichiers trop magasin, sans qui Bilder vollständig inviter trop doit.
Dieter Zornow, URL=www.rgh-soft.de/forum01/read.php?f=7&i=14767&t=14756, Zeitpunkt=05.03.2010
2010 Autor Dieter Zornow
Teile des Codes basieren sur dem procéder aus qui Include de Thomas Bois, Andreas Miethe, Hans-Jürgen Trog
Freeware
DEF MakeWord(2) (%(1) | (%(2)*$100))
Proc picturetype
parameters file$
declare mem#
dim mem#,50
Set("Filemode", 0)
blockread(file$,mem#,0,50)
Set("Filemode", 2)
var typ$ = char$(mem#,0,50)
dispose mem#
si Left $(typ$,2) = "BM"
ifnot mid$(typ$,3,2) = chr$(142)+chr$(3)
return ".bmp"
d'autre
return ".rle"
endif
elseif left$(typ$,2) = "II"
return ".tif"
endif
typ$= upper$(typ$)
Si instr("JFIF",typ$)
return ".jpg"
elseif instr("PNG",typ$)
return ".png"
elseif instr("GIF",typ$)
return ".gif"
elseif instr("EMF",typ$)
return ".emf"
d'autre
return ".ico"
endif
endproc
PROC IconDim
Paramètres file$
Déclarer Icons&,size#,return$
Faible size#,filesize(file$)
var x% = 0
Set("Filemode", 0)
BlockRead(file$,Size#,0,filesize(file$))
Set("Filemode", 2)
Icons& = @Word(Size#,4)
si icons& = 1
return$ = str$(icons&)+"|"+str$(Byte(size#,6))+"|"+str$(Byte(size#,7))
d'autre
return$ = str$(icons&)+"|"
WHILENOT x% = Icons&
return$ = return$+str$(Byte(size#,6+(x%*16)))+"|"+str$(Byte(size#,6+(x%*16+1)))+"|"
inc x%
Endwhile
endif
DISPOSE Size#
cas right$(return$,1) = "|":return$ = left$(return$,len(return$)-1)
return return$
ENDPROC
Proc GifDim
parameters file$
declare mem#
dim mem#,10
Set("Filemode", 0)
blockread(file$,mem#,0,10)
Set("Filemode", 0)
var b% = word(mem#,6)
var h% = word(mem#,8)
dispose mem#
return str$(b%)+"|"+str$(h%)
endproc
PROC BMPRLEDim
Paramètres file$
declare size#
DIM size#,24
Set("Filemode", 0)
BlockRead(file$,size#,0,24)
Set("Filemode", 2)
var return$ = str$(long(size#,18))+"|"+str$(long(size#,22))
DISPOSE size#
return return$ B,H
endproc
PROC PNGDim
Paramètres file$
declare size#,mem#
Faible size#,24
set("Filemode",0)
BlockRead(file$,size#,0,24)
set("Filemode",2)
var return$ = str$(makeword(byte(size#,19),byte(size#,18)))+"|"+str$(makeword(byte(size#,23),byte(size#,22)))
DISPOSE size#,mem#
return return$
ENDPROC
PROC JPGDim
Paramètres File$
declare size#
Faible size#,filesize(file$)
Set("Filemode", 0)
blockread(file$,size#,0,filesize(file$))
Set("Filemode", 2)
return GetJPGDIM(size#)
PROC GetJPGDimension
Paramètres size#,Match%
var back$ = str$(Makeword(byte(size#,match%+3),byte(size#,match%+2))) + "|" + str$(Makeword(byte(size#,match%+1),byte(size#,match%)))
DISPOSE size#
RETOUR back$
ENDPROC
PROC GetJPGMatch
Paramètres size#,x%
Déclarer fs%,y%,back$
fs% = sizeof(size#)
WHILENOT x% = fs%
IF ((MakeWord(Byte(size#,x%+1),Byte(size#,x%)) = 65472) | (MakeWord(Byte(size#,x%+1),Byte(size#,x%)) = 65474))
y%=x%+5 5 bytes en supplément
back$ = GetJPGDimension(size#,y%) Groessenangaben lesen
x%=fs%-1
endif
inc x%
Endwhile
RETOUR back$
ENDPROC
PROC GetJPGDIM
parameters size#
Déclarer mem#
dim mem#,65535
Externe("Kernel32","RtlMoveMemory",mem#,size#,65535)
var aaa% = (Makeword(Byte(mem#,5),Byte(mem#,4))+4)
DISPOSE mem#
var back$ = GetJPGMatch(size#,aaa%) Position ab Segmentende chercher
RETOUR back$
endproc
ENDPROC
PROC TGADim
Paramètres file$
declare size#,return$
DIM size#,16
Set("Filemode", 0)
BlockRead(file$,size#,0,16)
Set("Filemode", 2)
return$ = str$(Word(size#,12))+"|"+str$(Word(size#,14))
DISPOSE size#
return return$
ENDPROC
PROC EMFDim
Paramètres file$
declare size#,return$
DIM size#,24
Set("Filemode", 0)
BlockRead(file$,size#,0,24)
Set("Filemode", 2)
return$ = str$(Word(size#,16))+"|"+str$(Word(size#,20))
DISPOSE size#
return return$
ENDPROC
|
| | | | |
| | E.T. | cela Ermitteln qui Taille de JPG's stürzt ab- et à la fois kommentarlos ab. Pour längerer cherche im Proc GetJPGDIM trouvé:
dim mem#,65535
Externe("Kernel32","RtlMoveMemory",mem#,size#,65535)
ersetzen par:
Ist mir so Aufgefallen, comme je Dieter's Code zur Größenermittlung dans un Bilder-Slideshow incorporé habe. qui Slideshow brach toujours wieder irgendwo ab, pour qui Changement ist cet maintenant avec ~500 Bilder'n durchgelaufen !!
seulement getestet chez JPG's, peut-être hilfts oui quelqu'un ... |
| | | Grüße aus Sachsen... Mario WinXP, Win7 (64 Bit),Win8(.1),Win10, Win 11, Profan 6 - X4, XPSE, und 'nen schwarzes, blinkendes Dingens, wo ich das alles reinschütte... | 24.10.2010 ▲ |
| |
| | | Jupp, offenensichtlich un faute. |
| | | | |
| | E.T. | trouvé: faute chez Typ- / Größenerkennung chez .jpg . Hab cela Problem, cela quelques .jpg-Datei'n pas comme solche erkannt volonté (meist Handy-Bilder). chez cette Bildern wird überhaupt ne...aucune Typ erkannt (es wird un völlig sinnfreier String zurück gegeben), cela Lecture qui Taille (comme .jpg, suis mir sûrement, cela es solche sommes) scheitert ensuite aussi (Taille 0x0 ou bien souvent 160x120 chez 2048x1536). qui Datei'n sommes m.M. i.O., d.h. qui exif-données (Irfan & Co) aussi qui Windoof-Explorer montrer qui korrekten Werte pour Dossier-Format & -Taille à.
alors doch la fois hinsetzen et den exif-données beschäftigen, là cet données doch zuverlässiger trop son sembler...
[OFFTOPIC]oui c'est ca cela voulais je mir avec Dieter's Include sparen... , cet exif-Gewirr trop "entwirren". bof, vielleich wirds oui 'ne dll pour exif-données...[/OFFTOPIC] |
| | | Grüße aus Sachsen... Mario WinXP, Win7 (64 Bit),Win8(.1),Win10, Win 11, Profan 6 - X4, XPSE, und 'nen schwarzes, blinkendes Dingens, wo ich das alles reinschütte... | 11.12.2010 ▲ |
| |
|
répondreOptions du sujet | 11.373 Views |
Themeninformationencet Thema hat 2 participant: |