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 ! | |
|