FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  MembresMembres  Connexion  
Derniers sujets
» Une calculatrice en une ligne de programme
        Fais_moi un diaporama Emptypar jean_debord Aujourd'hui à 8:47

» Form(résolu)
        Fais_moi un diaporama Emptypar leclode Hier à 17:59

» trop de fichiers en cours
        Fais_moi un diaporama Emptypar Marc Hier à 11:42

» Bataille navale SM
        Fais_moi un diaporama Emptypar jjn4 Ven 26 Avr 2024 - 17:39

» Gestion d'un système client-serveur.
        Fais_moi un diaporama Emptypar Pedro Jeu 25 Avr 2024 - 19:31

» Les maths du crocodile
        Fais_moi un diaporama Emptypar jean_debord Jeu 25 Avr 2024 - 10:37

» Naissance de Crocodile Basic
        Fais_moi un diaporama Emptypar jean_debord Jeu 25 Avr 2024 - 8:45

» Editeur EliP 6 : Le Tiny éditeur avec 25 onglets de travail
        Fais_moi un diaporama Emptypar Froggy One Mer 24 Avr 2024 - 18:38

» Dessine-moi une galaxie
        Fais_moi un diaporama Emptypar jjn4 Lun 22 Avr 2024 - 13:47

» Erreur END_SUB
        Fais_moi un diaporama Emptypar jjn4 Lun 22 Avr 2024 - 13:43

» Bug sur DIM_LOCAL ?
        Fais_moi un diaporama Emptypar papydall Dim 21 Avr 2024 - 23:30

» 2D_fill_color(résolu)
        Fais_moi un diaporama Emptypar leclode Sam 20 Avr 2024 - 8:32

» Consommation gaz électricité
        Fais_moi un diaporama Emptypar leclode Mer 17 Avr 2024 - 11:07

» on_key_down (résolu)
        Fais_moi un diaporama Emptypar leclode Mar 16 Avr 2024 - 11:01

» Sous-programme(résolu)
        Fais_moi un diaporama Emptypar jjn4 Jeu 4 Avr 2024 - 14:42

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Avril 2024
LunMarMerJeuVenSamDim
1234567
891011121314
15161718192021
22232425262728
2930     
CalendrierCalendrier
Le Deal du moment :
Jeux, jouets et Lego : le deuxième à ...
Voir le deal

 

  Fais_moi un diaporama

Aller en bas 
+4
papydall
JL35
Yannick
sergeauze
8 participants
Aller à la page : 1, 2  Suivant
AuteurMessage
sergeauze

sergeauze


Nombre de messages : 391
Age : 71
Localisation : Hautes Alpes France
Date d'inscription : 09/01/2010

        Fais_moi un diaporama Empty
MessageSujet: Fais_moi un diaporama           Fais_moi un diaporama EmptyLun 1 Oct 2012 - 19:41

Salut
Beaucoup de photos prises cet été.
Je voudrais les voir defiler en boucle dans un coin de mon Bureau
Je n'ai pas trouve de code de diaporama sur le blog
Ce que j'ai reussi
à faire
Code:

dim x
picture 1
border_hide 0
top 0, 50
left 0, 20
width 0, 594
height 0, 400
width 1, 600
height 1, 400

stretch_on 1
for x=1 to 1000
  '
  file_load 1, "chemin d'acces du JPG"

  if key_down_code =27 then terminate
    wait 800
    file_load 1, "chemin d'acces du JPG"
    wait 800
    next x

    stop

C'est la solution de facilite !
Seulement pour quelque s cliches
Mon pb :c'est la gestion du chemin acces.
trouver les photos et le moyens de les afficher.
en formulant (file_load 1, "chemin d'acces du JPG") , autrement.

Avez_vous des solutions?
Bonne fin de journee
Revenir en haut Aller en bas
http://sergeauze.blog-video.tv/
Yannick




Nombre de messages : 8610
Age : 52
Localisation : Bretagne
Date d'inscription : 15/02/2010

        Fais_moi un diaporama Empty
MessageSujet: Re: Fais_moi un diaporama           Fais_moi un diaporama EmptyLun 1 Oct 2012 - 20:31

@ Sergeauze,

je ne vois où est ton problème pour trouver tes photos
en principe tu sais où tu les as mises.

Mais bon, le mieux est de te créer une arborescence depuis
le dossier "Mes Images" .
Tu crées un dlist 1 ou tu loges les dossiers présents dans le dossier principal
puis tu diriges vers le premier dossier.
Ensuite tu peux charger les adresses des photos présentes dans le fichier
dans un dlist 2 et finir ta boucle for par count(dlist 2)
du coup tu pourras rajouter des photos dans le dossier
ou même en enlever sans le risque d'une erreur.

Revenir en haut Aller en bas
JL35




Nombre de messages : 7095
Localisation : 77
Date d'inscription : 29/11/2007

        Fais_moi un diaporama Empty
MessageSujet: Re: Fais_moi un diaporama           Fais_moi un diaporama EmptyLun 1 Oct 2012 - 21:08

A condition d'avoir un dossier Mes Images et surtout d'avoir ses photos dedans.
Si elles sont n'importe où (chez moi par exemple j'ai un dossier 'C:\Photos' avec des sous-dossiers en fonction des dates ou des sujets).
Ce que tu peux faire sergeauze:
- déclarer un Open_Dialog 100 (enfin, un numéro quelconque d'objet libre)
- dans le programme, faire f$ = file_name$(100) qui présente un explorateur de fichiers à l'utilisateur, dans lequel il va choisir un répertoire (cliquer sur une image quelconque du répertoire choisi).
- extraire de ce nom de fichier le nom du répertoire: rep$ = File_Extract_Path$(f$)
- lister tous les fichiers jpg de ce répertoire dans un List ou un Dlist (par exemple avec Execute_Wait "Cmd.exe /c DIR /B rep$ + "\*.jpg >C:\TEMP\fichdir" et charger le fichier temporaire fichdir dans le List (puis le supprimer).
- établir la liste des fichiers .jpg de ce répertoire, un exemple:
Code:
LABEL Listphot
DIM f$, rep$, srep$

DLIST 10
OPEN_DIALOG 100

GOSUB Listphot
print str$(count(10)): ' nombre d'images trouvées
END

Listphot:
f$ = FILE_NAME$(100)
IF LEN(f$) < 4 THEN RETURN: ' pas de répertoire choisi
rep$ = FILE_EXTRACT_PATH$(f$): ' extraction du nom du répertoire
srep$ = DIR_CURRENT$: ' sauvegarde du répertoire courant
DIR_CHANGE rep$: ' on se positionne dans le répertoire choisi
f$ = FILE_FIND_FIRST$
WHILE f$ <> "_"
    IF UPPER$(RIGHT$(f$,3)) = "JPG" THEN ITEM_ADD 10, f$
    f$ = FILE_FIND_NEXT$
END_WHILE
FILE_FIND_CLOSE
DIR_CHANGE srep$: ' restore du répertoire courant
RETURN
Ensuite tu disposes de la liste de toutes tes photos que tu fais défiler à ta guise, le nom complet de chaque photo étant ici:
rep$ + Item_Read$(10, x).

Il y a quelques petits aménagements à prévoir, par exemple il est bon d'extraire la taille en pixels des photos pour pouvoir les orienter, la plaie ce sont les photos prises verticalement qui se présentent à 90°, dans ce cas si la hauteur est inférieure à la largeur il faut redimensionner le Picture d'affichage dans le bon sens.
Et d'autre petits problèmes qui se présentent au fur et à mesure, mais rien d'insurmontable.
Revenir en haut Aller en bas
Yannick




Nombre de messages : 8610
Age : 52
Localisation : Bretagne
Date d'inscription : 15/02/2010

        Fais_moi un diaporama Empty
MessageSujet: DES NOUVELLES ???...           Fais_moi un diaporama EmptyMar 2 Oct 2012 - 22:53

@Sergeauze,

Où en es tu ?...
Ne restes pas tout seul dans ton coin si tu piétines...

Laughing
Revenir en haut Aller en bas
sergeauze

sergeauze


Nombre de messages : 391
Age : 71
Localisation : Hautes Alpes France
Date d'inscription : 09/01/2010

        Fais_moi un diaporama Empty
MessageSujet: Fais_moi un diaporama           Fais_moi un diaporama EmptyMer 3 Oct 2012 - 9:55

je suis parvenu jusqu'a l'affichage des photos en boucle
Mais comme on dit:" science sans conscience ,n'est que ruine de l'ame"
Et je m'efforce de comprendre chaque etape de la demarche ,et le role de chaque instruction
Il me reste à finaliser l'affichage apres ça
Revenir en haut Aller en bas
http://sergeauze.blog-video.tv/
papydall

papydall


Nombre de messages : 6996
Age : 73
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

        Fais_moi un diaporama Empty
MessageSujet: Re: Fais_moi un diaporama           Fais_moi un diaporama EmptyMer 3 Oct 2012 - 12:42

Bonne continuation Sergeauze!
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Jean Claude

Jean Claude


Nombre de messages : 5948
Age : 69
Localisation : 83 Var
Date d'inscription : 07/05/2009

        Fais_moi un diaporama Empty
MessageSujet: Re: Fais_moi un diaporama           Fais_moi un diaporama EmptyMer 3 Oct 2012 - 13:41

@ Sergeauze,
Pour t'aider j'ai repris le code de JL35 (sans le modifier) pour y ajouter des commentaires qui permettent de voir ce qui se passe.

Code:
' récupération de tout les noms des photos (f$) du répertoire (rep$)
' pour les stocker dans le LIST ou DLIST n°10, pour pouvoir les travailler par la suite
' PAR JL35 (Supplément de commentaires: JEAN CLAUDE)

LABEL Listphot
DIM f$:' pour désigner le nom d'une image
dim rep$:' pour répertoire
dim srep$:' pour sauvegarde du répertoire courant

LIST 10:' mettre un DLIST à place (LIST non visible)

OPEN_DIALOG 100:' déclaration de l'obet OPEN_DIALOG, qui permet de visualiser une
                ' fenêtre pour choisir le répertoire (dossier) qui contient les photos

GOSUB Listphot:' execute la section de programme (label: Lisphot) jusqu'au RETURN

print str$(count(10)): ' nombre d'images trouvées

END
' ==============================================================================
Listphot:
f$ = FILE_NAME$(100):' le nom du répertoire choisi par l'utilisateur est stocké dans f$
IF LEN(f$) < 4 THEN RETURN: ' pas de répertoire choisi donc on attend (return)

rep$ = FILE_EXTRACT_PATH$(f$): ' extraction du nom du répertoire
caption 0, rep$:' cette ligne te permet de voir rep$ dans le bandeau de la fenêtre (à supprimer si nécessaire)

srep$ = DIR_CURRENT$: ' sauvegarde du répertoire courant
' (permet de de retrouver dans le même répertoire au prochain lancement du programme)

DIR_CHANGE rep$: ' on se positionne dans le répertoire choisi  pour extraire les photos

f$ = FILE_FIND_FIRST$:' permet de trouver la première image du répertoire f$

  WHILE f$ <> "_":' tant que f$ trouve une image execute le code jusqu'a END_WHILE
'                (tant que la condition f$<> "_" est vrai)

    IF UPPER$(RIGHT$(f$,3)) = "JPG" THEN ITEM_ADD 10, f$
        ' si les 3 derniers caractères de f$, (en majuscules: UPPER$)
        ' sont "JPG" alors on insere f$ (le nom de l'image) dans le DLIST 10.
       
f$ = FILE_FIND_NEXT$:' permet de continuer la recherche des photos
                    ' qui suivent la précédente trouvée

  END_WHILE: ' fin de la boucle WHILE
            ' (si la condition f$<> "_" n'est plus vrai on sort de la boucle)
           
FILE_FIND_CLOSE:' termine l'action de rcherche des photos
                ' (vu que la condition WHILE n'est plus vrai)

DIR_CHANGE srep$: ' restore du répertoire courant

RETURN

' ========================
' Maintenant les noms des photos du dossier choisi sont dans le DLIST 10


J'espère que c'est plus clair pour toi.
Une remarque: regarde en même temps le manuel de référence de chaque Mots-Clés.


@Papydall, je sens que tu as envie de transformer en tuto Very Happy Very Happy

@ JL35, me reprend-moi si j'ai dit des conneries dans mes commentaires. cyclops


Il faut aider nos collègues pour qu'ils restent avec nous.... cheers


A+
Revenir en haut Aller en bas
Yannick




Nombre de messages : 8610
Age : 52
Localisation : Bretagne
Date d'inscription : 15/02/2010

        Fais_moi un diaporama Empty
MessageSujet: re           Fais_moi un diaporama EmptyMer 3 Oct 2012 - 15:14

@ Segeauze,

Très bien, si tu buttes sur quelque chose
n'hésites pas à solliciter la bande de joyeux drills ... Laughing
Revenir en haut Aller en bas
JL35




Nombre de messages : 7095
Localisation : 77
Date d'inscription : 29/11/2007

        Fais_moi un diaporama Empty
MessageSujet: Re: Fais_moi un diaporama           Fais_moi un diaporama EmptyVen 5 Oct 2012 - 14:19

@sergeauze
si tu as besoin d'une routine (SUB) pour connaître les dimensions d'une image (c'est nécessaire à mon avis pour ce que tu veux faire):
Code:
' Recherche des dimensions en pixels (largeur et hauteur) d'une image aux
' formats Jpg, Bmp, Gif ou Tga
DIM f$, w%, h%

f$ = "C:\GRAPH\JPG\Joconde.jpg": ' exemple d'utilisation

Dimima(f$, w%, h%): ' -> dimensions dans w% et h% (erreur si w% < 0)

END

SUB Dimima(f$, wi%, hi%)
DIM_LOCAL dim_s$, dim_sz%, dim_v%(3000), dim_ad%, dim_offs%, dim_posit%
IF LABEL("reter") = 0 THEN LABEL reter
IF LABEL("retel") = 0 THEN LABEL retel
dim_s$ = UPPER$(RIGHT$(f$, 4)): w% = -1
IF FILE_EXISTS(f$) = 0 THEN GOTO retel: ' EXIT_SUB
FILEBIN_OPEN_READ 9, f$: dim_sz% = FILEBIN_SIZE(9)
FILEBIN_BLOCK_READ 9,26,dim_v%(0)
IF dim_s$ = ".JPG"
    IF dim_v%(0) <> 255 OR dim_v%(1) <> 216 THEN w% = -2: GOTO reter: ' EXIT_SUB
    dim_ad% = 0: dim_offs% = 0
    REPEAT
        REPEAT
            dim_posit% = dim_ad% + 2 + dim_offs%
            IF dim_posit% >= dim_sz% THEN w% = -3: GOTO reter: ' EXIT_SUB
            FILEBIN_POSITION 9, dim_posit%: FILEBIN_BLOCK_READ 9,4,dim_v%(0)
            IF dim_v%(0) <> 255 THEN w% = -4: GOTO reter: ' EXIT_SUB
            dim_offs% = 256*dim_v%(2) + dim_v%(3)
            dim_ad% = FILEBIN_POS(9) - 4
        UNTIL (dim_v%(1) >= 192 AND dim_v%(1) <= 195): ' # FFC0 à FFC3
        FILEBIN_BLOCK_READ 9,5,dim_v%(0)
    UNTIL dim_v%(0) = 8
    h% = 256*dim_v%(1) + dim_v%(2): w% = 256*dim_v%(3) + dim_v%(4)
ELSE
    IF dim_s$ = ".BMP"
        w% = dim_v%(18)+256*dim_v%(19)+256*256*dim_v%(20)+256*256*256*dim_v%(21)
        h% = dim_v%(22)+256*dim_v%(23)+256*256*dim_v%(24)+256*256*256*dim_v%(25)
    ELSE
        IF dim_s$ = ".GIF"
            w% = dim_v%(6) + 256*dim_v%(7): h% = dim_v%(8) + 256*dim_v%(9)
        ELSE
            IF dim_s$ = ".TGA"
                w% = dim_v%(12)+256*dim_v%(13): h% = dim_v%(14)+256*dim_v%(15)
            END_IF
        END_IF
    END_IF
END_IF
reter:
FILEBIN_CLOSE 9
retel:
END_SUB
Revenir en haut Aller en bas
papydall

papydall


Nombre de messages : 6996
Age : 73
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

        Fais_moi un diaporama Empty
MessageSujet: Re: Fais_moi un diaporama           Fais_moi un diaporama EmptyVen 5 Oct 2012 - 16:08

@JL35

J’ai testé ta routine : GOOD
Mais (vous êtes maintenant habitué à mes mais !), comme rien ne s’affiche à l’écran, j’ai ajouté en ligne 8 (juste avant le END)
Code:

PRINT  "Largeur = "; w%; "  Hauteur =  "; h%

C’étais juste pour mon mais sans plus !         Fais_moi un diaporama 3d-Salut-25
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
JL35




Nombre de messages : 7095
Localisation : 77
Date d'inscription : 29/11/2007

        Fais_moi un diaporama Empty
MessageSujet: Re: Fais_moi un diaporama           Fais_moi un diaporama EmptyVen 5 Oct 2012 - 18:01

J'espère que tu as pensé aussi à changer le nom du fichier Very Happy
Revenir en haut Aller en bas
papydall

papydall


Nombre de messages : 6996
Age : 73
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

        Fais_moi un diaporama Empty
MessageSujet: Re: Fais_moi un diaporama           Fais_moi un diaporama EmptyVen 5 Oct 2012 - 19:10

Ça c’est la 1ère chose à laquelle je pense : je l’eus su très tôt         Fais_moi un diaporama Haha4
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
sergeauze

sergeauze


Nombre de messages : 391
Age : 71
Localisation : Hautes Alpes France
Date d'inscription : 09/01/2010

        Fais_moi un diaporama Empty
MessageSujet: Fais_moi un diaporama           Fais_moi un diaporama EmptyVen 5 Oct 2012 - 19:36

Salut
Oui c'est bien les dimensions de l'image qu'il faut obtenir
Je suis en train d'y arriver avec color_pixel...
Je fais un balayage horizontal et vertical sur le jpg charge
(Le jpg se charge dans sa totalite en arriere plan dans le picture ,meme si l'on n'en voit qu'une partie
;on peut meme avoir des dimensions à zero)
Mon balayage s'arrete aux limites du jpg lorsque les 3 composantes rvb renvoyees sont 0,0 0,
soit le noir. Je prends des points de test assez eloignes l'un de l'autre.
Les dimensions obtenues me permettent de calibrer mon affichage .
Je teste la faisabilite de mon idee .
Je regarde ton code
Merci pour votre interet , à tous
Revenir en haut Aller en bas
http://sergeauze.blog-video.tv/
Jean Claude

Jean Claude


Nombre de messages : 5948
Age : 69
Localisation : 83 Var
Date d'inscription : 07/05/2009

        Fais_moi un diaporama Empty
MessageSujet: Re: Fais_moi un diaporama           Fais_moi un diaporama EmptyVen 5 Oct 2012 - 19:49

Bon courage Sergeauze,

J'abandonne ce poste.
Revenir en haut Aller en bas
Klaus

Klaus


Nombre de messages : 12274
Age : 74
Localisation : Ile de France
Date d'inscription : 29/12/2009

        Fais_moi un diaporama Empty
MessageSujet: Re: Fais_moi un diaporama           Fais_moi un diaporama EmptyVen 5 Oct 2012 - 19:52

J'ai des fonctions dans KGF.dll qui donnent les dimensions de l'image. Il y en a plusieurs - il n'y a qu'à choisir celle qui convient le mieux...
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
JL35




Nombre de messages : 7095
Localisation : 77
Date d'inscription : 29/11/2007

        Fais_moi un diaporama Empty
MessageSujet: Re: Fais_moi un diaporama           Fais_moi un diaporama EmptyVen 5 Oct 2012 - 20:06

@sergeauze
ta méthode pour trouver les dimensions de l'image me paraît pour le moins... surprenante ! et si ça marche, plutôt... pardonne-moi, bestiale ! ça doit prendre un temps fou de balayer toute l'image pixel par pixel dans les deux sens pour ça, sauf si tu as une seule image, et encore, toute petite !
Et il faut prévoir un Picture plus grand que l'image, dans les deux sens.
Une méthode que j'ai également utilisé (mais c'est un peu tordu):
- charger l'image jpg dans un picture invisible (File_Load)
- sauvegarder le picture dans un fichier bmp temporaire (File_Save)
- lire le bmp en binaire (File_Read_Block) et en extraire les dimensions, à des emplacements précis (voir plus haut);
- supprimer ce bmp temporaire (File_Delete).

@Klaus
certes... mais il faut une dll ! pour ma part je n'y fais appel que s'il n'y a pas moyen d'y arriver en Panoramic pur.
Revenir en haut Aller en bas
sergeauze

sergeauze


Nombre de messages : 391
Age : 71
Localisation : Hautes Alpes France
Date d'inscription : 09/01/2010

        Fais_moi un diaporama Empty
MessageSujet: Re: Fais_moi un diaporama           Fais_moi un diaporama EmptyVen 5 Oct 2012 - 20:15

J'ai maintenant trois possibilites :
ta dll ,Klaus
ton code jean claude
la mienne
Je vais tester les 3
Revenir en haut Aller en bas
http://sergeauze.blog-video.tv/
JL35




Nombre de messages : 7095
Localisation : 77
Date d'inscription : 29/11/2007

        Fais_moi un diaporama Empty
MessageSujet: Re: Fais_moi un diaporama           Fais_moi un diaporama EmptyVen 5 Oct 2012 - 20:16

euh... bon.
Revenir en haut Aller en bas
Yannick




Nombre de messages : 8610
Age : 52
Localisation : Bretagne
Date d'inscription : 15/02/2010

        Fais_moi un diaporama Empty
MessageSujet: re           Fais_moi un diaporama EmptyVen 5 Oct 2012 - 20:17

Heu...une petite question....
Que veux tu que les autres "viewer" ne t'apportent pas ?
Laughing
Revenir en haut Aller en bas
Jean Claude

Jean Claude


Nombre de messages : 5948
Age : 69
Localisation : 83 Var
Date d'inscription : 07/05/2009

        Fais_moi un diaporama Empty
MessageSujet: Re: Fais_moi un diaporama           Fais_moi un diaporama EmptyVen 5 Oct 2012 - 20:36

@Sergeauze,

Tu dis mon code ??? moi je n'ai fait que reprendre celui de JL35 pour y mettre des commentaires pour t'aider....
Rendons à Jules ce qui appartient à César...

Je quitte car maintenant je suis plus dans la course.

A+
Revenir en haut Aller en bas
JL35




Nombre de messages : 7095
Localisation : 77
Date d'inscription : 29/11/2007

        Fais_moi un diaporama Empty
MessageSujet: Re: Fais_moi un diaporama           Fais_moi un diaporama EmptyVen 5 Oct 2012 - 21:07

merci Jean Claude (de la part de Jules)
Revenir en haut Aller en bas
sergeauze

sergeauze


Nombre de messages : 391
Age : 71
Localisation : Hautes Alpes France
Date d'inscription : 09/01/2010

        Fais_moi un diaporama Empty
MessageSujet: Re: Fais_moi un diaporama           Fais_moi un diaporama EmptyVen 5 Oct 2012 - 21:15

"Que veux tu que les autres "viewer" ne t'apportent pas ?"
Rien de plus , sinon en saisir le fonctionnement .
J'adore demonter les mecanismes ,c'est mon cote bricoleur qui reprend le dessus

pour jl 35
Oui tu as raison ça rame
mes excuses pour ma confusion
bonsoir à vous
Revenir en haut Aller en bas
http://sergeauze.blog-video.tv/
JL35




Nombre de messages : 7095
Localisation : 77
Date d'inscription : 29/11/2007

        Fais_moi un diaporama Empty
MessageSujet: Re: Fais_moi un diaporama           Fais_moi un diaporama EmptyVen 5 Oct 2012 - 21:21

alors si tu aimes bricoler, n'hésite pas à te plonger dans la structure des fichiers en binaire c'est amusant, il suffit d'un programme de dump et d'avoir une idée du contenu des fichiers (à rechercher sur internet, on trouve tout ce qu'on veut), il y a des outils intéressants en panoramic pour s'amuser avec ça. C'est vrai que c'est bien plus satisfaisant de faire les choses soi-même que de les faire traiter par une boîte noire externe.
Revenir en haut Aller en bas
JL35




Nombre de messages : 7095
Localisation : 77
Date d'inscription : 29/11/2007

        Fais_moi un diaporama Empty
MessageSujet: Re: Fais_moi un diaporama           Fais_moi un diaporama EmptyLun 8 Oct 2012 - 22:58

@sergeauze (et autres...)
je remets le code qui permet d'obtenir les dimensions d'une image, avec pour le cas des jpg avec Exifs (c'est le cas général pour les photos numériques) le renvoi de la date et heure de prise de vue, ce qui peut être intéressant pour avoir la date/heure réelle dans le cas où l'image a été retouchée ultérieurement.
Et mis à jour avec la dernière version de Panoramic (avec les Exit_Sub):
Code:
' Recherche des dimensions en pixels (largeur et hauteur) d'une image aux
' formats Jpg, Bmp, Gif ou Tga. Si Exifs (Jpg), date/heure de prise de vue.
DIM f$, w%, h%, dtpv$

f$ = "C:\Photos\...\DSCF1192.jpg": ' à voir

Dimima(f$, w%, h%, dtpv$): ' -> dimensions et date/heure dans w%, h% et dtpv$
print f$ + " " + str$(w%) + "x" + str$(h%) + " - " + dtpv$: ' pour papydall

END
' ==============================================================================
SUB Dimima(f$, wi%, hi%, datpv$)
DIM_LOCAL dim_s$, dim_sz%, dim_v%(3000), dim_ad%, dim_of%, dim_po%, dim_ex%
dim_s$ = UPPER$(FILE_EXTRACT_EXTENSION$(f$)): w% = -1
IF FILE_EXISTS(f$) = 0 THEN EXIT_SUB
FILEBIN_OPEN_READ 9, f$: dim_sz% = FILEBIN_SIZE(9)
FILEBIN_BLOCK_READ 9,100,dim_v%(0)
IF dim_s$ = ".JPG"
    IF dim_v%(0)<>255 OR dim_v%(1)<>216 THEN FILEBIN_CLOSE 9: w% = -2: EXIT_SUB
    dim_ex% = 0
    FOR dim_of% = 4 TO 100
        IF dim_v%(dim_of%)=73 AND dim_v%(dim_of%+1)=73: ' &4949
            IF dim_v%(dim_of%+2)=42 AND dim_v%(dim_of%+3)=0: ' &2A00
                dim_ex% = dim_of%: EXIT_FOR: ' Tiff header (Exif) trouvé
            END_IF
        END_IF
    NEXT dim_of%
    dim_ad% = 0: dim_of% = 0
    REPEAT
        REPEAT
            dim_po% = dim_ad% + 2 + dim_of%
            IF dim_po% >= dim_sz% THEN FILEBIN_CLOSE 9: w% = -3: EXIT_SUB
            FILEBIN_POSITION 9, dim_po%: FILEBIN_BLOCK_READ 9,4,dim_v%(0)
            IF dim_v%(0) <> 255 THEN FILEBIN_CLOSE 9: w% = -4: EXIT_SUB
            dim_of% = 256*dim_v%(2) + dim_v%(3)
            dim_ad% = FILEBIN_POS(9) - 4
        UNTIL (dim_v%(1) >= 192 AND dim_v%(1) <= 195): ' # FFC0 à FFC3
        FILEBIN_BLOCK_READ 9,5,dim_v%(0)
    UNTIL dim_v%(0) = 8
    h% = 256*dim_v%(1) + dim_v%(2): w% = 256*dim_v%(3) + dim_v%(4)
    dtpv$ = ""
    IF dim_ex% > 0: ' infos Exif: date/heure de prise de vue
        FILEBIN_POSITION 9, 0: FILEBIN_BLOCK_READ 9,1000,dim_v%(0)
        FOR dim_of% = dim_ex% TO 1000
            IF dim_v%(dim_of%)=50 AND dim_v%(dim_of%+1)=1: ' &3201
                dim_of% = dim_ex%+dim_v%(dim_of%+8)+256*dim_v%(dim_of%+9): ' offset date/heure
                FOR dim_po% = dim_of% TO dim_of%+18: ' 19 octets
                    dtpv$ = dtpv$ + CHR$(dim_v%(dim_po%))
                NEXT dim_po%
                EXIT_FOR: ' trouvé
            END_IF
        NEXT dim_of%
    END_IF
ELSE
    IF dim_s$ = ".BMP"
        w% = dim_v%(18)+256*dim_v%(19)+256*256*dim_v%(20)+256*256*256*dim_v%(21)
        h% = dim_v%(22)+256*dim_v%(23)+256*256*dim_v%(24)+256*256*256*dim_v%(25)
    ELSE
        IF dim_s$ = ".GIF"
            w% = dim_v%(6) + 256*dim_v%(7): h% = dim_v%(8) + 256*dim_v%(9)
        ELSE
            IF dim_s$ = ".TGA"
                w% = dim_v%(12)+256*dim_v%(13): h% = dim_v%(14)+256*dim_v%(15)
            END_IF
        END_IF
    END_IF
END_IF
FILEBIN_CLOSE 9
END_SUB
' ==============================================================================
Revenir en haut Aller en bas
sergeauze

sergeauze


Nombre de messages : 391
Age : 71
Localisation : Hautes Alpes France
Date d'inscription : 09/01/2010

        Fais_moi un diaporama Empty
MessageSujet: Re: Fais_moi un diaporama           Fais_moi un diaporama EmptyMar 9 Oct 2012 - 11:18

Bonjour
merci à jl 35 pour ton code
Je bute sur la ligne 17:
(28)Not defined variable(dim);line :17
Surement quelque chose que j'aurais pas compris dans l'utilisation du code
Revenir en haut Aller en bas
http://sergeauze.blog-video.tv/
Contenu sponsorisé





        Fais_moi un diaporama Empty
MessageSujet: Re: Fais_moi un diaporama           Fais_moi un diaporama Empty

Revenir en haut Aller en bas
 
Fais_moi un diaporama
Revenir en haut 
Page 1 sur 2Aller à la page : 1, 2  Suivant
 Sujets similaires
-
» Un petit diaporama
» re: Fais_moi un diaporama
» Encore un diaporama
» Nouvel objet Diaporama

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: A l'aide!-
Sauter vers: