Gambas France BETA


Pas de compte ? Incription

C'est ouvert

1
AuteurMessages
jeanyvon#1 Posté le 4/11/2019 à 06:48:16
Gambas? Ma! Et gustoSalut
Voici une bonne huitaine que notre forum est ré-ouvert... Comme personne ne s'y risque et qu'il faut un premier message!
C'est chose faite.

JY
Vieillir? On peut retarder mais pas y échapper!
Foromus#2 Posté le 5/11/2019 à 12:04:35
Bonjour,

J'avais remarqué...
Mais peut-être que, ça marche tellement bien, que personne n'a de question à poser...

Bon, je me dévoue...
Suite à mes soucis de mémoire RAM qui ne se vide pas, et dont j'avais déjà parlé sur un autre fil, j'ai résolu en laissant tomber le projet.
Au hasard, est-ce qu'il existe une fonction (formule, machin, etc) magique qui me donnerait direct la taille d'une image.jpg, genre : "hauteur = hauteur.monimage.jpg" Id pour largeur... Ça, ça serait bien...

Autre info : le gambas3.13.0 tourne à peu près correctement sous xubuntu18. Mais des choses curieuses quand même.
Flachy Joe#3 Posté le 6/11/2019 à 21:41:33
Iguane : Il Gambas Uniquement pour Activer ses NEuronesSalut,
est-ce qu'il existe une fonction (formule, machin, etc) magique qui me donnerait direct la taille d'une image.jpg, genre : "hauteur = hauteur.monimage.jpg" Id pour largeur... Ça, ça serait bien...

Genre comme ça ?
flachy@joe's:~$ identify Bannière.png | egrep -o "[0-9]+x[0-9]+" | egrep -o -m 1 [0-9]+ | xargs printf "Largeur %d Hauteur %d \n" $1 $2
Largeur 1200 Hauteur 628

NB : C'est fait à l'arrache, ça doit être faisable plus proprement avec awk.
;) Flachy Joe ;)
linuxos#4 Posté le 10/11/2019 à 14:57:49
Un peu de sel, de poivre et la crevette sera... Salut,

Il y a aussi sur tous les GNU/Linux la commande "file" qui permet d'identifier le type des fichiers:

[linus@linusky Images]$ file *.jpg *.pngfile *.jpg *.png
editordonnaceur.png: PNG image data, 64 x 64, 8-bit/color RGBA, non-interlaced
elasticsearch-netflow-integration-300x168.png: PNG image data, 300 x 168, 8-bit colormap, non-interlaced
elk-netflow-support-300x153.png: PNG image data, 300 x 153, 8-bit colormap, non-interlaced
executable-script.png: PNG image data, 64 x 64, 8-bit/color RGBA, non-interlaced
file-manager.png: PNG image data, 64 x 64, 8-bit/color RGBA, non-interlaced
sunrise-phu-quoc-island-ocean.jpg: JPEG image data, JFIF standard 1.01, aspect ratio, density 1x1, segment length 16, Exif Standard: [TIFF image data, big-endian, direntries=4, manufacturer=NIKON CORPORATION, model=NIKON D610], baseline, precision 8, 4096x2315, components 3


Olivier
Lorsqu'on s'occupe d'informatique, il faut faire comme les canards... Paraître calme en surface et pédaler comme un forcené par en dessous.
Foromus#5 Posté le 13/11/2019 à 15:13:41
Bonjour à tous,

C'est sympa de me répondre, mais j'avoue avoir essayé de tourner les propositions dans tous les sens, Gambas refuse de me renseigner...
Je dois dire que je reste dubitatif concernant les commandes proposées, ce me semble plutôt des commandes en console, non ?
jeanyvon#6 Posté le 13/11/2019 à 15:46:06
Gambas? Ma! Et gustosalut

chez moi ça fonctionne ou en console ou avec un shell
Vieillir? On peut retarder mais pas y échapper!
linuxos#7 Posté le 14/11/2019 à 03:03:59
Un peu de sel, de poivre et la crevette sera... Salut Foromus,

Rien n'empeche d'executer des commandes Unix a partir de Gambas et de traiter le TEXTE retourné par la commande:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
DIM ResultatCmd AS STRING
DIM aTabLigne AS NEW String[]
DIM sLigne AS STRING

TRY SHELL "cd /Mon/Repertoire/Images ; file *.jpg *.pngfile *.jpg *.png" TO ResultatCmd
IF ERROR THEN
PRINT "Erreur lors de l'execution de la commande 'file' "
ELSE

aTabLigne = Split(ResultatCmd, "\n")

FOR EACH sLigne IN aTabLigne
PRINT "ligne: " & sLigne
' >> Traitement de chaque ligne de la commande ICI <<
NEXT

ENDIF


Olivier
Lorsqu'on s'occupe d'informatique, il faut faire comme les canards... Paraître calme en surface et pédaler comme un forcené par en dessous.
Foromus#8 Posté le 18/11/2019 à 17:06:09
Bonjour à tous,

@Olivier,

Merci pour ce code.
Je l'ai copié et j'ai tenté de le faire tourner. Il me semble que c'est surtout prévu pour fonctionner en console, et moi j'utilise le graphique. Mais même en graphique il tourne - j'ai tenté les 2 modes, cela dit, je ne sais pas comment récupérer les variables dans sLigne (ligne 14). C'est vrai que les infos sont toutes affichées en cascade, depuis le type d’appareil, la date, etc. et même les cotes sous la forme 10X15 par exemple. Si je sais à peu près exploiter une ligne string, je reste coincé devant cette suite d'éléments séparés par une virgule, je ne peux pas jouer sur le nombre de caractères, ça change à chaque ligne. D'autant que dans le cas qui m'intéresse, je cherche obtenir seulement les cotes, c'est-à-dire, le 10 et le 15, dans mon exemple cité.
Et naturellement, j'aimerais bien avoir ces données sous forme de variables : hauteur et largeur.
Pour l'heure, je ne sais pas faire...

Flachy Joe#9 Posté le 18/11/2019 à 22:17:17
Iguane : Il Gambas Uniquement pour Activer ses NEuronesTa chaîne de caractère peut être traité avec des expressions régulières comme dans mon exemple précédent, cf http://gambaswiki.org/wiki/comp/gb.pcre?l=fr
ou simplement découpée avec split ( http://gambaswiki.org/wiki/lang/split?l=fr )

En mixant mon exemple, avec la commande identify des outils ImageMagick et les expressions régulières dans le shell, et le code de linuxos :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
DIM ResultatCmd AS STRING
DIM aDimensions AS NEW String[]
DIM sLigne AS STRING

TRY SHELL "identify " & Fichier & " | egrep -o \"[0-9]+x[0-9]+\" | egrep -o -m 1 [0-9]+ | xargs printf \"%d %d\" $1 $2" TO ResultatCmd
IF ERROR THEN
PRINT "Erreur lors de l’exécution de la commande"
ELSE

aDimensions = Split(ResultatCmd, " ")

Largeur = aDimensions[0]
Hauteur = aDimensions[1]

ENDIF
;) Flachy Joe ;)
1