Novembre 2024 | Lun | Mar | Mer | Jeu | Ven | Sam | Dim |
---|
| | | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | | Calendrier |
|
|
| Fais_moi un diaporama | |
|
+4papydall JL35 Yannick sergeauze 8 participants | |
Auteur | Message |
---|
JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Fais_moi un diaporama Mar 9 Oct 2012 - 16:16 | |
| bonjour sergeauze La ligne 17 c'est bien celle-ci ?: FILEBIN_BLOCK_READ 9,100,dim_v%(0) la seule variable c'est le tableau dim_v%() qui est défini ligne 13: DIM_LOCAL dim_s$, dim_sz%, dim_v%(3000), dim_ad%, dim_of%, dim_po%, dim_ex% alors je ne vois pas du tout comment tu peux avoir cette erreur... ??? et je suis incapable de la reproduire avec le code ci-dessus... | |
| | | sergeauze
Nombre de messages : 391 Age : 72 Localisation : Hautes Alpes France Date d'inscription : 09/01/2010
| Sujet: Re: Fais_moi un diaporama Mer 10 Oct 2012 - 1:06 | |
| Dans le but d'obtenir la hauteur et la largeur des images je charge l'mage je fais un seul passage ,scan horizontal je fais un seul passage,scan verical j'utilise une boucle enveloppante ,avec 2 boucles a la suite à l'interieur Voila un code qui resume l'i dee - Code:
-
' SCAN ' je recupere a l'aide d'une boucle , 5 jpg de dimensions inconnues, ' dans un fichier ' ce qui suit devrait me permettre d'en trouver les dimensions ' mais ca neà fonctionne que pour la premiere! ' ce qui est logique
font_size 0,9 dim x ,y,z while z<5 z=z+1 print z," z" ," zzzzzzzzzzzzzzzzzz" ," je recupere l'image " while x <5 x=x+1 print x," x"," xxxxxxxxxx" ," scan pour la largeur" end_while while y< 5 y=y+1 print y," y"," yyyyyyy" ," scan pour la hauteur " end_while
end_while
Je suis bloque parce que toute les images suivantes auront les memes dimensions que la premiere !! Une idee? | |
| | | papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Fais_moi un diaporama Mer 10 Oct 2012 - 1:28 | |
| Salut Sergeauze C’est parce qu’après la 1ère boucle, les variables X et Y sont toutes les 2 à 5 et les tests n’auront plus lieu. Donc réinitialise ces 2 variables à zéro et ça devrait marcher - Code:
-
' SCAN ' je recupere a l'aide d'une boucle , 5 jpg de dimensions inconnues, ' dans un fichier ' ce qui suit devrait me permettre d'en trouver les dimensions ' mais ca neà fonctionne que pour la premiere! ' ce qui est logique
font_size 0,9 dim x,y,z while z < 5 z = z + 1 : x = 0 : y = 0 print z," z" ," zzzzzzzzzzzzzzzzzz" ," je recupere l'image " while x < 5 x = x + 1 print x," x"," xxxxxxxxxx" ," scan pour la largeur" end_while while y < 5 y = y + 1 print y," y"," yyyyyyy" ," scan pour la hauteur " end_while end_while
| |
| | | sergeauze
Nombre de messages : 391 Age : 72 Localisation : Hautes Alpes France Date d'inscription : 09/01/2010
| Sujet: Re: Fais_moi un diaporama Mer 10 Oct 2012 - 17:06 | |
| Salut Une bonne nuit de sommeil et tout devient plus clair Merci Papydall Moi et la logique on a parfois du mal à se mettre d'accord ! Ca fonctionne . Je ne ne crierai pas Eureka ,car sans les ressources et aides du forum je n'y serais pas parvenu . Je mets tout ça au propre avant publication Je suis maintenant curieux de savoir comment ça fonctionne avec la dll de klaus | |
| | | papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Fais_moi un diaporama Mer 10 Oct 2012 - 17:33 | |
| Salut Sergeauze. - sergeauze a écrit:
Merci Papydall Moi et la logique on a parfois du mal à se mettre d'accord ! Ca fonctionne .
Je suis content de t’entendre dire (ou plutôt de te lire) que ça fonctionne ! Comme quoi, en se posant des questions on finit bien par trouver des réponses ! Bonne continuation! | |
| | | sergeauze
Nombre de messages : 391 Age : 72 Localisation : Hautes Alpes France Date d'inscription : 09/01/2010
| Sujet: Re: Fais_moi un diaporama Lun 22 Oct 2012 - 19:42 | |
| Ilest temps pour moi de rendre ma copie La methode bestialeScan sur une photo de tres petites dimensions - Code:
-
rem BALAYAGE PHOTO rem VOTRE PHOTO DU BLOG PAR EXEMPLE
dim x,y,w ,s,a,b
width 0,1400 height 0,1000
x=0 y=0 picture 1 height 1 ,400 width 1,200 left 1 ,200 color 0,125,0,0 2d_pen_width 1 file_load 1,"chemin de votre image jpg" display repeat 2d_pen_color color_pixel_red(1,x,y),color_pixel_green(1,x,y),color_pixel_blue(1,x,y)
2d_fill_color color_pixel_red(1,x,y),color_pixel_green(1,x,y),color_pixel_blue(1,x,y) 2d_rectangle x*3+a,3*y+b,x*3+a+3,3*y+b+3 2d_circle x*8,8*y,7
2d_point x*1+a,1*y+b if scancode =27 then end a=800 b=25 x=x+1 a=a+1 if x>190 then y=y+1 if x>190 then x=0 s= (color_pixel_green(1,x,y)+ color_pixel_red(1,x,y)+color_pixel_blue(1,x,y))
until y=140 ce qui me permet de voir que l'image se charge sur un fond NOIR et me permet d'otenir les dimensions d'une image de cette façon - Code:
-
rem ############################## rem #OBTENIR LES DIMENSIONS # rem #DE VOTRE PHOTO # rem #JUSQUE A 40 Mo # rem ##############################
dim q,s,g, largeur,hauteur,x,y ,coef list 10 left 10,100 top 10,150 coef=0.06 height 0,100 width 0,153 picture 1 color 10,247,243,155 width 0,900 height 0,900 ' width 1 ,100 ' height 1,100 ' border_hide 0
x=0:y=0 file_load 1,"C:\Users\Serge\Pictures\fusion.jpg"
stretch_on 1 ' ¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤ repeat x=x+1
if key_down_code =27 then end s=color_pixel_red(1,x,y)+color_pixel_green(1,x,y)+color_pixel_blue(1,x,y) g=color_pixel_red(1,x+40,y)+color_pixel_green(1,x+40,y)+color_pixel_blue(1,x+40,y)
largeur = x until s+g=0 ' ¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤ repeat y=y+1 x=10
if key_down_code =27 then end s=color_pixel_red(1,x,y) +color_pixel_green(1,x,y)+color_pixel_blue(1,x,y) g=color_pixel_red(1,x,y+15)+color_pixel_green(1,x,y+15)+color_pixel_blue(1,x,y+15)
hauteur= y
until s+g=0 ' ¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤ item_add 10,"largeur" item_add 10,largeur item_add 10,"hauteur" item_add 10,hauteur
height 0,hauteur*coef width 0,largeur*coef height 1,hauteur*coef width 1,largeur*coef
stretch_on 1 file_load 1,"C:\Users\Serge\Pictures\fusion.jpg" wait 5000 end
et me permet de construire le diaporama - 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) ' trace_on f ' et creation d'un diaporama ' Q POUR QUITTER DIM f$,g,j:' pour désigner le nom d'une image dim rep$:' pour répertoire dim srep$:' pour sauvegarde du répertoire courant dim q,s, largeur,hauteur,h dim x,y,n color 0, 244,241,23
PICTURE 1 top 1,50 left 0, 20 left 1,150 LIST 20 top 20,120 left 20,25 height 20,40 width 20,80 color 20,244,241,23 ' ................................................................................................... LABEL Listphot DLIST 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 FOR g=1 to str$(count(10)) ' print str$(count(10)) if scancode = 81 then end h=largeur
wait 10 ' print rep$ + Item_Read$(10, g) file_load 1,rep$+ Item_Read$(10, g) stretch_on 1
x=0:h=0 :y=0 ' XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx ' BALAYAGE horizontal et vetical,un seul passage FOR h= 1 to 30000 if scancode = 81 then end h=h+1 '
if color_pixel_red(1,h,y)=0 and color_pixel_green(1,h,y)= 0 and color_pixel_blue(1,h+15,y)=0 then exit_for
next h largeur = h item_add 20,largeur
border_hide 0 ' print_locate 80,200
' ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
for y= 1 to 30000 y=y+1 x=100
if scancode = 81 then end if color_pixel_red(1,x,y)=0 and color_pixel_green(1,x,y)=0 and color_pixel_blue(1,x,y+15)=0 then exit_for ' next y hauteur= y item_add 20,hauteur
' dimensions à adapter selon le lot d'images height 1,hauteur/4 width 1,largeur/4 height 0,(hauteur/4 )+120 width 0,(largeur/4)+300
' on recharge la photo aux dimensions ci_dessus file_load 1,rep$+ Item_Read$(10, g) wait 800 :' on peut accelerer le defilement item_delete 20,1 item_delete 20,1 ' XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx next g 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 ' print rep$ + Item_Read$(10, x)
J'ai volontairement laisse les commentaires On peut faire mieux ! | |
| | | Nardo26
Nombre de messages : 2294 Age : 56 Localisation : Valence Date d'inscription : 02/07/2010
| Sujet: Re: Fais_moi un diaporama Lun 22 Oct 2012 - 22:59 | |
| Bonsoir Serge, Le problème c'est que si dans ton répertoire tu as aussi des images et qu'elles contiennent du noir (donc RVB=0), tu risques de sortir de tes boucles plus tôt que prévu... | |
| | | sergeauze
Nombre de messages : 391 Age : 72 Localisation : Hautes Alpes France Date d'inscription : 09/01/2010
| Sujet: Re: Fais_moi un diaporama Lun 22 Oct 2012 - 23:26 | |
| si on affine le filtre avec les if color pixel on peut passer sur des zones noires en ayant toujour un composante de couleur de valeur superieur à zero on peut imaginer,pour se faire une idee ,un rateau avec 3 dents eloignees de 50 ou 100 pixels l'une de l'autre suivi d'un autre rateau le tout se deplaçant parallelement à l'axe des x puis celui de y Six points de controle ou neuf devraient me donner un resultat plus que correct les photos de vacance c'est toujours plein de couleurs !!! | |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Fais_moi un diaporama Lun 22 Oct 2012 - 23:45 | |
| En effet et sur des photos, on n'a jamais de vrai noir contrairement aux images dessinées | |
| | | sergeauze
Nombre de messages : 391 Age : 72 Localisation : Hautes Alpes France Date d'inscription : 09/01/2010
| Sujet: Re: Fais_moi un diaporama Lun 22 Oct 2012 - 23:50 | |
| j'ameliore mon filtre et je vois ce que ça donne sur des dessins en noir et blanc | |
| | | Contenu sponsorisé
| Sujet: Re: Fais_moi un diaporama | |
| |
| | | | Fais_moi un diaporama | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |