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 |
|
|
| Objet PICTURE | |
| | |
Auteur | Message |
---|
Nardo26
Nombre de messages : 2294 Age : 56 Localisation : Valence Date d'inscription : 02/07/2010
| Sujet: Re: Objet PICTURE Mer 29 Aoû 2012 - 11:33 | |
| Merci ygeronimi pour les liens ! Je pense avoir trouvé la réponse: pour le jpeg, uniquement en 24 bits... | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Mer 29 Aoû 2012 - 12:55 | |
| @ Nardo, Si tu as trouvé ton bonheur, tout va bien... | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Objet PICTURE Mer 29 Aoû 2012 - 13:55 | |
| Tiens, regarde ce petit programme qui fait défiler une image verticalement et/ou horizontalement, quelque soit sa taille: - Code:
-
' picture_scroll.bas
label ouvrir, sortir, hor, ver
dim w%, h%, f$, res%, w101%, h101%
full_space 0
open_dialog 1 filter 1,"Images|*.bmp;*.jpg"
main_menu 10 sub_menu 11 : parent 11,10 : caption 11,"Fichier" sub_menu 21 : parent 21,11 : caption 21,"Ouvrir" : on_click 21,ouvrir sub_menu 22 : parent 22,11 : caption 22,"-" sub_menu 23 : parent 23,11 : caption 23,"Sortir" : on_click 23,sortir
container 100 : left 100,5 : width 100,800 : height 100,600 picture 101 : parent 101,100 : top 101,10 : left 101,10 width 101,width(100)-20 : height 101,height(100)-20 w101% = width(101) : h101% = height(101) scroll_bar 102 : horizontal 102 : width 102,width(101) : min 102,0 top 102,top(100)+height(100) : left 102,left(100)+left(101) scroll_bar 103 : vertical 103 : height 103,height(101) : min 103,0 top 103,top(100)+top(101) : left 103,left(100)+width(100)
dll_on "KGF.dll"
end
sortir: terminate ouvrir: f$ = file_name$(1) if f$="_" then return off_change 102 : off_change 103 res% = dll_call3("AnalyzeImageFile",adr(f$),adr(w%),adr(h%)) if res%=1 message "Erreur en analyse du fichier" return end_if width 101,w% height 101,h% file_load 101,f$ max 102,w% - w101% max 103,h% - h101% on_change 102,hor on_change 103,ver return
hor: left 101,10 - position(102) return ver: top 101,10 - position(103) return | |
| | | Nardo26
Nombre de messages : 2294 Age : 56 Localisation : Valence Date d'inscription : 02/07/2010
| Sujet: Re: Objet PICTURE Mer 29 Aoû 2012 - 14:58 | |
| Merci Klaus ! Bien vu l'utilisation de CONTAINER ! | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Objet PICTURE Mer 29 Aoû 2012 - 17:45 | |
| J'ai amélioré mon petit programme de visualisation. Il affiche maintenant une petite vignette avec l'image entière, redimensionnée de façon proportionnelle. On peut cliquer dans cette vignette ce qui place immédiatement la visualisation de sorte que l'endroit du clic soit en haut à gauche dans la zone de visualisation. Voici la version actuelle: - Code:
-
' picture_scroll.bas
label ouvrir, sortir, hor, ver, clic
dim left_cont%, top_cont% dim w%, h%, f$, res%, w101%, h101%, fact%, x%, y%
full_space 0
open_dialog 1 filter 1,"Images|*.bmp;*.jpg"
main_menu 10 sub_menu 11 : parent 11,10 : caption 11,"Fichier" sub_menu 21 : parent 21,11 : caption 21,"Ouvrir" : on_click 21,ouvrir sub_menu 22 : parent 22,11 : caption 22,"-" sub_menu 23 : parent 23,11 : caption 23,"Sortir" : on_click 23,sortir
left_cont% = 10 : top_cont% = 10 container 100 : left 100,5 : width 100,800 : height 100,600 picture 101 : parent 101,100 : top 101,top_cont% : left 101,left_cont% width 101,width(100)-left(100)-left_cont% height 101,height(100)-top(100)-top_cont% w101% = width(101) : h101% = height(101) scroll_bar 102 : horizontal 102 : width 102,width(101) : min 102,0 top 102,top(100)+height(100) : left 102,left(100)+left(101) scroll_bar 103 : vertical 103 : height 103,height(101) : min 103,0 top 103,top(100)+top(101) : left 103,left(100)+width(100) picture 104 : top 104,top(100) : left 104,left(103)+width(103) stretch_on 104 : on_click 104,clic dll_on "KGF.dll"
end
sortir: terminate ouvrir: f$ = file_name$(1) if f$="_" then return off_change 102 : off_change 103 res% = dll_call3("AnalyzeImageFile",adr(f$),adr(w%),adr(h%)) if res%=1 message "Erreur en analyse du fichier" return end_if width 101,w% height 101,h% file_load 101,f$ max 102,w% - w101% max 103,h% - h101% on_change 102,hor on_change 103,ver fact% = w%/200 width 104,w%/fact% height 104,h%/fact% file_load 104,f$ return
hor: left 101,10 - position(102) return ver: top 101,10 - position(103) return clic: x% = mouse_x_left_down(104) * fact% y% = mouse_y_left_down(104) * fact% if x%>w%-w101% then x% = w% - w101% if y%>h%-h101% then y% = h% - h101% off_change 102 : off_change 103 position 102,x% : position 103,y% left 101,10 - position(102) top 101,10 - position(103) on_change 102,hor : on_change 103,ver return
J'ai incorporé ce module dans le fichier Klaus Sources.hlp qui est sur le WebDav. | |
| | | bignono
Nombre de messages : 1127 Age : 67 Localisation : Val de Marne Date d'inscription : 13/11/2011
| Sujet: Re: Objet PICTURE Mer 29 Aoû 2012 - 17:56 | |
| Bonjour à tous, Je viens de relire ce post depuis la page 2, et je me demande pourquoi Klaus a fait une dll "analyzeJPEG" pour avoir les dimensions d'une image jpg alors qu'il avait déjà fait dans printscreen.dll des fonctions permettant justement d'obtenir la taille d'une image que ce soit en bmp ou jpg en passant par le presse papier. J'en ai d'ailleurs fait un petit programme que j'utilise avec printscreen.dll mais qui fonctionne aussi avec KGF.dll puisque printscreen y est inclus maintenant. Appuyez sur la touche enter ou return pour recharger une image. Appuyez sur la touche esc pour sortir du programme. Voici mon petit programme: - Code:
-
label recommence,attendre dim dll$:dll$="KGF.dll" dim rep$:rep$="c:\mesprog\" dim f$,w%,h%,t color 0,0,0,0:full_space 0 picture 5:hide 5 dir_change rep$ recommence: dll_on rep$+dll$ open_dialog 10:filter 10,"Fichier image|*.jpg;*.bmp" f$=file_name$(10) delete 10 if f$<>"_" then file_load 5,f$ clipboard_copy 5 w%=dll_call0("GetClipboardPictureWidth") h%=dll_call0("GetClipboardPictureHeight") dll_off width 5,w%:height 5,h% show 5:message "largeur="+str$(w%)+" hauteur="+str$(h%) attendre: display t=scancode if t=13 then goto recommence if t=27 then terminate goto attendre En espérant que ce soit utile... A+ PS: on s'est croisé Klaus, mais je post quand même mon petit prog... | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Objet PICTURE Mer 29 Aoû 2012 - 18:05 | |
| La différence est simple, Bignono.
Les fonctions qui existaient dans KGF.dll, permettent de trouver les dimensions d'une image contenue dans le presse-papier.
Si on veut le faire le choix de l'image à partir de Panoramic, on n'a pas d'autre moyen que de charger cette image dans un picture et de la copier dans le presse-papier, avant d'utiliser ces fonctions.
Le but des deux nouvelles fonctions AnalyzeJPG et AnalyzeImagFile est d'obtenir le même résultat, mais sans avoir à charger ces images dans un picture, simplement en analysant le fichier BMP ou JPG sur disque.
La deuxième fonction AnalyzeImageFile marche d'ailleurs aussi avec des formats d'image non reconnus par Panoramic: ICO, TIF, et d'autres, ce qui peut avoir aussi un intérêt, même si on ne peut pas les charger dans un picture. | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Jeu 30 Aoû 2012 - 0:24 | |
| il y a un souci avec les *.bmp - Code:
-
Get_Size: f$=item_read$(5,1) dll_on D$+"\KGF.dll" res%=dll_call3("AnalyzeImageFile",adr(f$),adr(L%),adr(H%)) if res%=1 message "Extension de fichier invalide !" else message "Largeur: "+str$(L%)+" Hauteur: "+str$(H%) end_if dll_off return taille réelle des images :deutsch, 134x80 english, 160x80 french, 120x80 d'après la dll :deutsch ,101x60 english, 120x60 french, 90x60 | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Objet PICTURE Jeu 30 Aoû 2012 - 1:21 | |
| Bug corrigé.
KGF.dll passe à la version V1.39 du 30/08/2012.
| |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Jeu 30 Aoû 2012 - 2:00 | |
| Je confirme, c'est ok !
bravo et merci Klaus ! | |
| | | bignono
Nombre de messages : 1127 Age : 67 Localisation : Val de Marne Date d'inscription : 13/11/2011
| Sujet: Re: Objet PICTURE Jeu 30 Aoû 2012 - 8:57 | |
| Bonjour Klaus, Merci de ta réponse, je n'avais pas saisi la différence... Par contre dans ton programme, si on charge une image inférieure aux dimensions du picture, une petite image, il y a erreur: Scrollbar property out of range. A+ | |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Objet PICTURE Jeu 30 Aoû 2012 - 10:01 | |
| Bonjour Bignono, la différence c'est que tu peux afficher la taille d'un objet sans le charger en mémoire et l'afficher (en autre par exemple pour faire un test par rapport aux dimensions et n'afficher les scrollbars que si besoin ) Tu peux avoir besoin des dimensions uniquement. Maintenant c'est possible, après tu les affichent ou pas, mais les infos, tu vas directement les chercher dans les fichiers sur le disque. | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Objet PICTURE Jeu 30 Aoû 2012 - 10:20 | |
| @Bignono: je vais regarder ça. EDIT Voici la correction: - Code:
-
' picture_scroll.bas
label ouvrir, sortir, hor, ver, clic
dim left_cont%, top_cont% dim w%, h%, f$, res%, w101%, h101%, fact%, x%, y%
full_space 0
open_dialog 1 filter 1,"Images|*.bmp;*.jpg"
main_menu 10 sub_menu 11 : parent 11,10 : caption 11,"Fichier" sub_menu 21 : parent 21,11 : caption 21,"Ouvrir" : on_click 21,ouvrir sub_menu 22 : parent 22,11 : caption 22,"-" sub_menu 23 : parent 23,11 : caption 23,"Sortir" : on_click 23,sortir
left_cont% = 10 : top_cont% = 10 container 100 : left 100,5 : width 100,800 : height 100,600 picture 101 : parent 101,100 : top 101,top_cont% : left 101,left_cont% width 101,width(100)-left(100)-left_cont% height 101,height(100)-top(100)-top_cont% w101% = width(101) : h101% = height(101) scroll_bar 102 : horizontal 102 : width 102,width(101) : min 102,0 top 102,top(100)+height(100) : left 102,left(100)+left(101) scroll_bar 103 : vertical 103 : height 103,height(101) : min 103,0 top 103,top(100)+top(101) : left 103,left(100)+width(100) picture 104 : top 104,top(100) : left 104,left(103)+width(103) stretch_on 104 : on_click 104,clic dll_on "KGF.dll"
end
sortir: terminate ouvrir: f$ = file_name$(1) if f$="_" then return off_change 102 : off_change 103 res% = dll_call3("AnalyzeImageFile",adr(f$),adr(w%),adr(h%)) if res%=1 message "Erreur en analyse du fichier" return end_if if w%<=w101% hide 102 else show 102 width 101,w% max 102,w% - w101% end_if if h%<=h101% hide 103 else show 103 height 101,h% max 103,h% - h101% end_if file_load 101,f$ on_change 102,hor on_change 103,ver fact% = w%/200 width 104,w%/fact% height 104,h%/fact% file_load 104,f$ return
hor: left 101,10 - position(102) return ver: top 101,10 - position(103) return clic: x% = mouse_x_left_down(104) * fact% y% = mouse_y_left_down(104) * fact% if x%>w%-w101% then x% = w% - w101% if y%>h%-h101% then y% = h% - h101% off_change 102 : off_change 103 position 102,x% : position 103,y% left 101,10 - position(102) top 101,10 - position(103) on_change 102,hor : on_change 103,ver return | |
| | | bignono
Nombre de messages : 1127 Age : 67 Localisation : Val de Marne Date d'inscription : 13/11/2011
| Sujet: Re: Objet PICTURE Jeu 30 Aoû 2012 - 12:40 | |
| Correction OK! Merci | |
| | | Contenu sponsorisé
| Sujet: Re: Objet PICTURE | |
| |
| | | | Objet PICTURE | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |