Français
Comprend

Bildgrößen aus Bilddatei Include

 
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


 
05.03.2010  
 




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:
dim mem#,sizeof(size#)
Externe("Kernel32","RtlMoveMemory",mem#,size#,sizeof(size#))

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.
 
24.10.2010  
 




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épondre


Topictitle, max. 100 marque.
 

Systemprofile:

ne...aucune Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

s'il te plaît s'inscrire um une Beitrag trop verfassen.
 

Options du sujet

11.373 Views

Untitledvor 0 min.
Michael Hettner02.05.2022
Daniel04.03.2022
Ralf Netz22.05.2021
Sven Bader04.03.2021
plus...

Themeninformationen

cet Thema hat 2 participant:

E.T. (2x)
iF (2x)


Admins  |  AGB  |  Applications  |  Auteurs  |  Chat  |  protection des données  |  Télécharger  |  Entrance  |  Aider  |  Merchantportal  |  Empreinte  |  Mart  |  Interfaces  |  SDK  |  Services  |  Jeux  |  cherche  |  Support

un projet aller XProfaner, qui il y a!


Mon XProfan
Privé Nouvelles
Eigenes Ablageforum
Sujets-La liste de voeux
Eigene Posts
Eigene Sujets
Zwischenablage
Annuler
 Deutsch English Français Español Italia
Traductions

protection des données


Wir verwenden Cookies seulement comme Session-Cookies à cause de qui technischen Notwendigkeit et chez uns gibt es aucun Cookies de Drittanbietern.

si du ici sur unsere Webseite klickst ou bien navigierst, stimmst du unserer Erfassung de Informationen dans unseren Cookies sur XProfan.Net trop.

Weitere Informationen trop unseren Cookies et en supplément, comment du qui Kontrolle par-dessus behältst, findest du dans unserer nachfolgenden Datenschutzerklärung.


d'accordDatenschutzerklärung
je voudrais keinen Cookie