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 |
|
|
| Largeur et hauteur d'une image JPG ou BMP | |
| | |
Auteur | Message |
---|
Marc
Nombre de messages : 2466 Age : 63 Localisation : TOURS (37) Date d'inscription : 17/03/2014
| Sujet: Largeur et hauteur d'une image JPG ou BMP Mer 5 Juil 2023 - 20:09 | |
| Bonjour à tous ! Bien que le sujet ai été traité plusieurs fois sur le forum, je vous propose une SUB qui renseigne la largeur et la hauteur d’une image jpg ou bmp. L’appel de la SUB prend en paramètre le nom du fichier, relatif ou absolu. - Relatif : par exemple "image.jpg". Le fichier sera recherché dans le répertoire courant. - Absolu : par exemple "C:\monDossier\image". Le chemin complet est renseigné pour accéder au fichier. La largeur et la hauteur de l’image en pixels sont renvoyées par la SUB dans 2 variables globales qui seront déclarées en tête de programme : DIM largeurImage%, hauteurImage% - Code:
-
sub largeurHauteurImage(fichier$) dim_local buffer%(25), marqueur%, index%, tailleFichier%, longueurSegment%
' remise à "0" des variables hauteur et largeur de l'image hauteurImage% = 0 largeurImage% = 0 ' ouvrir en lecture le fichier de la photo sélectionné dans la boite de dialogue filebin_open_read 1,fichier$
' lire la taille du fichier en octets tailleFichier% = filebin_size(1) ' lecture entête fichier sur une longueur de 25 octets filebin_block_read 1,25,buffer%(0)
' Identifier le type de fichier image : BMP ou JPG ? if buffer%(0) = hex("FF") and buffer%(1) = hex("D8") :' cas d'un fichier JPG
index% = 2
' Recherche du marqueur 0xFFCx et lecture des dimensions du JPG ' Principe de recherche des maqueurs fourni par JL35 while index% < tailleFichier% filebin_position 1,index% filebin_block_read 1,9,buffer%(0) marqueur% = (buffer%(0)*256) + buffer%(1) longueurSegment% = (buffer%(2)*256) + buffer%(3)
' avance pas à pas jusqu'au prochain marqueur 0xFF en cas de longueur erronée du précédent segment while buffer%(0) <> 255 index% = index% + 1 longueurSegment% = longueurSegment% + 1 filebin_position 1,index% filebin_block_read 1,9,buffer%(0) end_while
marqueur% = (buffer%(0)*256) + buffer%(1) longueurSegment% = (buffer%(2)*256) + buffer%(3)
' décodage marqueurs de base 0xFFCx (SOF : Start Of File x) if marqueur% > 65471 and marqueur% < 65476 :' 0xFFC0, 0xFFC1, 0xFFC2 et 0xFFC3 ' hauteur de l'image en pixels hauteurImage% = buffer%(5) * 256 + buffer%(6) ' largeur de l'image en pixels largeurImage% = buffer%(7) * 256 + buffer%(8)
' sortie de boucle lorsque le marqueur recherché a été trouvé exit_while end_if
' saut vers le prochain marqueur index% = index% + longueurSegment% + 2 end_while else ' fichier BMP largeurImage% = buffer%(18) + (buffer%(19)*256) + (buffer%(20)*power(256,2)) + (buffer%(21)*power(256,3)) hauteurImage% = buffer%(22) + (buffer%(23)*256) + (buffer%(24)*power(256,2)) + (buffer%(25)*power(256,3)) end_if
' Fermer fichier binaire filebin_close 1 end_sub Exemple concret d’utilisation : - Code:
-
' Dimensions en pixels d'une image JPG ou BMP ' JL35 et Marc - Juillet 2023 ' Ecrit en langage PANORAMIC 0.9.29.i.9
' définir les variables dim nomFichier$, largeurImage%, hauteurImage%
' définir les LABELs (étiquettes pour repérer un emplacement dans le code) label ouvrirFichier
' Saut vers le sous programme de création de l'interface utilisateur creerInterfaceUtilisateur()
' fin de programme principal end
' ------------------------------------------------------------------------------ sub creerInterfaceUtilisateur()
' créer une fenêtre de dialoque pour ouvrir un fichier image open_dialog_pic 1
' Mettre un filtre à la fenêtre de dialogue pour ne sélectionner que les fichiers avec l'extension JPG ou BMP filter 1,"Fichier image *.JPG ou *.BMP|*.jpg;*.bmp"
' créer un bouton d'appel à charger un fichier image button 2 top 2,35 left 2,480 caption 2,"Choisir image" on_click 2,ouvrirFichier
' créer une ligne d'affichage pour le nom du fichier alpha 3 top 3,30 left 3,30
' créer une ligne d'affichage pour la largeur de l'image en pixels alpha 4 top 4,50 left 4,30
' créer une ligne d'affichage pour la hauteur de l'image en pixels alpha 5 top 5,70 left 5,30
' créer le PICTURE d'affichage pour l'image sélectionnée picture 6 top 6,136 left 6,105 height 6,250 width 6,375 stretch_on 6 end_sub ' ------------------------------------------------------------------------------ ouvrirFichier: ' Afficher la boite de dialogue pour sélectionner un fichier image nomFichier$ = file_name$(1)
' Fermer la boite de dialoque si l'utilisateur annule sa demande. if nomFichier$ = "_" return end_if
' Saut au sous programme de recherche des dimensions de l'image rechercherLargeurHauteurImage(nomFichier$)
' affichage des résultats caption 3,"Nom du fichier : " + file_extract_name$(nomFichier$) caption 4,"Largeur de l'image :" + str$(largeurImage%) + " pixels" caption 5,"Hauteur de l'image :" + str$(hauteurImage%) + " pixels" ' saut au sous-programme d'affichage de l'image sélectionnée afficherImage() return ' ------------------------------------------------------------------------------ sub rechercherLargeurHauteurImage(fichier$) dim_local buffer%(25), marqueur%, index%, tailleFichier%, longueurSegment%
' remise à "0" des variables hauteur et largeur de l'image hauteurImage% = 0 largeurImage% = 0 ' ouvrir en lecture le fichier de la photo sélectionné dans la boite de dialogue filebin_open_read 1,fichier$
' lire la taille du fichier en octets tailleFichier% = filebin_size(1) ' lecture entête fichier sur une longueur de 25 octets filebin_block_read 1,25,buffer%(0)
' Identifier le type de fichier image : BMP ou JPG ? if buffer%(0) = hex("FF") and buffer%(1) = hex("D8") :' cas d'un fichier JPG
index% = 2
' Recherche du marqueur 0xFFCx et lecture des dimensions du JPG while index% < tailleFichier% filebin_position 1,index% filebin_block_read 1,9,buffer%(0) marqueur% = (buffer%(0)*256) + buffer%(1) longueurSegment% = (buffer%(2)*256) + buffer%(3)
' avance pas à pas jusqu'au prochain marqueur 0xFF en cas de longueur erronée du précédent segment while buffer%(0) <> 255 index% = index% + 1 longueurSegment% = longueurSegment% + 1 filebin_position 1,index% filebin_block_read 1,9,buffer%(0) end_while
marqueur% = (buffer%(0)*256) + buffer%(1) longueurSegment% = (buffer%(2)*256) + buffer%(3)
' décodage marqueurs de base 0xFFCx (SOF : Start Of File x) if marqueur% > 65471 and marqueur% < 65476 :' 0xFFC0, 0xFFC1, 0xFFC2 et 0xFFC3 ' hauteur de l'image en pixels hauteurImage% = buffer%(5) * 256 + buffer%(6) ' largeur de l'image en pixels largeurImage% = buffer%(7) * 256 + buffer%(8)
' sortie de boucle lorsque le marqueur recherché a été trouvé exit_while end_if
' saut vers le prochain marqueur index% = index% + longueurSegment% + 2 end_while else ' dimensions pour un fichier BMP largeurImage% = buffer%(18) + (buffer%(19)*256) + (buffer%(20)*power(256,2)) + (buffer%(21)*power(256,3)) hauteurImage% = buffer%(22) + (buffer%(23)*256) + (buffer%(24)*power(256,2)) + (buffer%(25)*power(256,3)) end_if
' Fermer l'accès en lecture fichier binaire filebin_close 1 end_sub ' ------------------------------------------------------------------------------ sub afficherImage() ' déclaration des variables locales dim_local ratioImage, ratioPicture ' calcul du ratio de l'objet PICTURE(6) 375x250 pixels ratioPicture = 375/250
' calcul du ration de l'image ratioImage = largeurImage% / hauteurImage%
' adaptater le ratio du PICTURE(6) au ratio de l'image sélectionnée if ratioImage > ratioPicture width 6,375 height 6,375 / ratioImage else height 6,250 width 6,250 * ratioImage end_if
' centrer le PICTURE(6) à l'écran left 6,(width_client(0) - width(6)) / 2 top 6,((height_client(0) - height(6)) / 2) + 40
' Afficher l'image sélectionnée dans le PICTURE(6) file_load 6,nomFichier$ end_sub
Cliquez sur le bouton « Fichier image » pour choisir une image et afficher ses dimensions. Bonne programmation à tous !
Dernière édition par Marc le Mer 19 Juil 2023 - 12:41, édité 4 fois | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Largeur et hauteur d'une image JPG ou BMP Mer 5 Juil 2023 - 21:44 | |
| Salut Marc, Personnellement j'utilise depuis toujours la petite sub ci-dessous, certes ce n'est pas aussi rigoureux que ta méthode, mais jusqu'à preuve du contraire ça marche à tous les coups: - Code:
-
SUB DimJpgBmp(f$) ' Dimensions d'une image Bmp ou Jpg -> w,h, définis dans l'appelant DIM_LOCAL p,fp$ p = 900: fp$ = "C:\Tmp.bmp" IF FILE_EXTRACT_EXTENSION$(UPPER$(f$)) <> ".BMP" PICTURE p: HIDE p: FILE_LOAD p,f$: FILE_SAVE p,fp$: DELETE p: f$ = fp$ END_IF FILEBIN_OPEN_READ 1,f$ FILEBIN_POSITION 1,18: w = FILEBIN_READ(1)+256*FILEBIN_READ(1) FILEBIN_POSITION 1,22: h = FILEBIN_READ(1)+256*FILEBIN_READ(1) FILEBIN_CLOSE 1: IF FILE_EXISTS(fp$) = 1 THEN FILE_DELETE fp$ END_SUB | |
| | | jjn4
Nombre de messages : 2747 Date d'inscription : 13/09/2009
| Sujet: Re: Largeur et hauteur d'une image JPG ou BMP Jeu 6 Juil 2023 - 15:02 | |
| Personnellement, j'utilise toujours la formule qu'on avait concocté avec JL35 (enfin surtout faite par JL35) qui prenait aussi en compte certains jpg tordus (ceux plus tordus encore étant traités par une transformation discrète en bmp) (je peux vous détailler la formule, si cela intéresse certains) @ Marc : Ta formule, qui a l'air intéressante, prend-elle en compte tous les cas de figure de jpg, même très tordus ? | |
| | | jjn4
Nombre de messages : 2747 Date d'inscription : 13/09/2009
| Sujet: Re: Largeur et hauteur d'une image JPG ou BMP Jeu 13 Juil 2023 - 15:35 | |
| J'ai cherché et c'est vrai que ça marche pour presque tous, mais à de rares exceptions près. | |
| | | Marc
Nombre de messages : 2466 Age : 63 Localisation : TOURS (37) Date d'inscription : 17/03/2014
| Sujet: Re: Largeur et hauteur d'une image JPG ou BMP Jeu 13 Juil 2023 - 17:36 | |
| Bonjour JJN4 !
A l'occasion, peux-tu me faire parvenir un fichier jpg qui ne passe pas ?
Merci d'avance !
| |
| | | jjn4
Nombre de messages : 2747 Date d'inscription : 13/09/2009
| | | | Marc
Nombre de messages : 2466 Age : 63 Localisation : TOURS (37) Date d'inscription : 17/03/2014
| Sujet: Re: Largeur et hauteur d'une image JPG ou BMP Jeu 13 Juil 2023 - 18:10 | |
| Super ! Merci ! Je testerai ce soir... | |
| | | Marc
Nombre de messages : 2466 Age : 63 Localisation : TOURS (37) Date d'inscription : 17/03/2014
| Sujet: Re: Largeur et hauteur d'une image JPG ou BMP Jeu 13 Juil 2023 - 21:15 | |
| @JJn4 J'ai analysé la photo. Le tag SOF (Start Of File) qui contient les dimensions de l'image est 0xFFC1.
J'ai ajouté la prise en charge de ce tag et maintenant tout fonctionne bien.
Les codes sources du premier post ont été rectifiés en conséquence.
Merci de ton aide ! Si tu as d'autres photos litigieuses, je suis preneur !
Bonne programmation à tous !
| |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Largeur et hauteur d'une image JPG ou BMP Jeu 13 Juil 2023 - 21:25 | |
| Effectivement jjn4 il doit y avoir un os dans ton image qui ne se charge pas dans un picture (File_load) mais ça ne signale pas d'erreur... il ne se passe rien. J'ai une sub qui donne les dimensions d'un jpg et qui marche dans ce cas (-> 479 x 500) : - Code:
-
SUB DimJpg(f$) ' Dimensions rendues dans w et h, définis dans l'appelant ' dimensions d'un jpg -> w, h : frame FF C0 ' (frames: FF tt 00 yy xx ... ' tt = type de frame, xx+256*yy taille du contenu (+2 = taille totale) DIM_LOCAL sz,t,x,v%(10) FILEBIN_OPEN_READ 9,f$: sz = FILEBIN_SIZE(9): x = 2 WHILE x < sz FILEBIN_POSITION 9,x: FILEBIN_BLOCK_READ 9,10,v%(0) t = v%(1): ' type de frame (FF xx) IF t=192 OR t=193 OR t=194 OR t=195: ' C0, C1, C2, C3 frame dimensions h = v%(6)+256*v%(5): w = v%(8)+256*v%(7) EXIT_WHILE END_IF x = x+v%(3)+256*v%(2)+2: ' frame suivant END_WHILE FILEBIN_CLOSE 9 END_SUB PS: autant pour moi ! Mais si l'image se charge dans le picture, je ne l'avais pas défini assez grand... et donc je ne voyais que le coin supérieur gauche, tout blanc ! - Code:
-
DIM f$,w,h f$ = "Z:\bot10.jpg": ' image jjn4 FONT_SIZE 0,12: COLOR 0,220,220,220 PICTURE 1: FULL_SPACE 1 FILE_LOAD 1,f$ DimJpg(f$) PRINT STR$(w)+" x "+STR$(h) END ' =========================== SUB DimJpg(f$) ' dimensions d'un jpg -> w, h : frame FF C0 ' (frames: FF tt 00 yy xx ... ' tt = type de frame, xx+256*yy taille du contenu (+2 = taille totale) DIM_LOCAL sz,t,x,v%(10) FILEBIN_OPEN_READ 9,f$: sz = FILEBIN_SIZE(9): x = 2 WHILE x < sz FILEBIN_POSITION 9,x: FILEBIN_BLOCK_READ 9,10,v%(0) t = v%(1): ' type de frame (FF xx) IF t=192 OR t=193 OR t=194 OR t=195: ' C0, C1, C2, C3 frame dimensions h = v%(6)+256*v%(5): w = v%(8)+256*v%(7) EXIT_WHILE END_IF x = x+v%(3)+256*v%(2)+2: ' frame suivant END_WHILE FILEBIN_CLOSE 9 END_SUB
Dernière édition par JL35 le Jeu 13 Juil 2023 - 21:48, édité 2 fois | |
| | | Marc
Nombre de messages : 2466 Age : 63 Localisation : TOURS (37) Date d'inscription : 17/03/2014
| Sujet: Re: Largeur et hauteur d'une image JPG ou BMP Jeu 13 Juil 2023 - 21:36 | |
| Bonsoir JL35 ! L'image de JJN4 se charge sans problème dans un PICTURE : | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Largeur et hauteur d'une image JPG ou BMP Jeu 13 Juil 2023 - 21:40 | |
| Bonsoir Marc ! effectivement j'étais en train de rectifier ci-dessus, ça marche ! | |
| | | jjn4
Nombre de messages : 2747 Date d'inscription : 13/09/2009
| Sujet: Re: Largeur et hauteur d'une image JPG ou BMP Ven 14 Juil 2023 - 14:35 | |
| Oui, ça marche avec l'image que je t'ai donnée, j'ai essayé avec d'autres qui ne marchaient pas, certaines ça marche et d'autres non : je t'en envoie une nouvelle avec laquelle ta nouvelle routine ne fonctionne pas (mais comme elle est un peu grande, je te l'envoie avec un lien : (lien supprimé)
Dernière édition par jjn4 le Sam 15 Juil 2023 - 16:30, édité 1 fois | |
| | | jjn4
Nombre de messages : 2747 Date d'inscription : 13/09/2009
| Sujet: Re: Largeur et hauteur d'une image JPG ou BMP Ven 14 Juil 2023 - 14:41 | |
| J'ai transformé un peu ta routine de l'autre fois pour en faire un explorateur systématique de répertoires de photos. Cela permet de se faire une idée rapide de celles avec qui ça ne marche pas. Je la publie ci après : (cela permettra à tous ceux qui possèdent des listes de photos, de trouver si ils possèdent des images également récalcitrantes) - Code:
-
Exploration des images par liste: ' Dimensions d'une image JPG ou BMP ' JL35 et Marc - Juillet 2023 ' Ecrit en langage PANORAMIC 0.9.29.i.9
dim nomFichier$, largeurImage%, hauteurImage% , a$ , i%
label ouvrirFichier
' créer une boite de dialoque pour ouvrir un fichier image open_dialog_pic 1
' Mettre un filtre à la boite de dialogue pour ne sélectionner que les fichiers avec l'extension JPG ou BMP filter 1,"Fichier image *.JPG ou *.BMP|*.jpg;*.bmp"
button 2 top 2,25 left 2,480 caption 2,"Fichier image" on_click 2,ouvrirFichier
dlist 4
end ' ------------------------------------------------------------------------------ ouvrirFichier: ' Afficher la boite de dialogue pour sélectionner un fichier image nomFichier$ = file_name$(1)
' si l'utilisateur annule sa recherche => fin du programme if nomFichier$ = "_" return end_if clear 4 a$=file_find_first$ while a$<>"_" if lower$(right$(a$,4))=".jpg" item_add 4,a$ end_if a$=file_find_next$ end_while file_find_close for i% = 1 to count(4) largeurImage% = 0 hauteurImage% = 0 nomFichier$=item_read$(4,i%) largeurHauteurImage(nomFichier$)
' affichage des dimensions if largeurImage%=0 and hauteurImage%=0 print "Nom du fichier : " + file_extract_name$(nomFichier$) print "Largeur de l'image :" + str$(largeurImage%) + " pixels" print "Hauteur de l'image :" + str$(hauteurImage%) + " pixels" print end_if caption 0,str$(i%)+"/"+str$(count(4)) next i% beep return ' ------------------------------------------------------------------------------ sub largeurHauteurImage(fichier$) dim_local buffer%(25), marqueur%, index%, tailleFichier%, longueurSegment%
' remise à "0" des variables hauteur et largeur de l'image hauteurImage% = 0 largeurImage% = 0 ' ouvrir en lecture le fichier de la photo sélectionné dans la boite de dialogue filebin_open_read 1,fichier$
' lire la taille du fichier en octets tailleFichier% = filebin_size(1) ' lecture entête fichier sur une longueur de 25 octets filebin_block_read 1,25,buffer%(0)
' Identifier le type de fichier image : BMP ou JPG ? if buffer%(0) = hex("FF") and buffer%(1) = hex("D8") :' cas d'un fichier JPG
index% = 2
' Recherche du marqueur 0xFFCx et lecture des dimensions du JPG ' Principe de recherche des maqueurs fourni par JL35 while index% < tailleFichier% filebin_position 1,index% filebin_block_read 1,9,buffer%(0) marqueur% = (buffer%(0)*256) + buffer%(1) longueurSegment% = (buffer%(2)*256) + buffer%(3)
' avance pas à pas jusqu'au prochain marqueur 0xFF en cas de longueur erronée du précédent segment while buffer%(0) <> 255 index% = index% + 1 longueurSegment% = longueurSegment% + 1 filebin_position 1,index% filebin_block_read 1,9,buffer%(0) end_while
marqueur% = (buffer%(0)*256) + buffer%(1) longueurSegment% = (buffer%(2)*256) + buffer%(3)
' décodage marqueurs de base 0xFFCx (SOF : Start Of File x) if marqueur% > 65471 and marqueur% < 65476 :' 0xFFC0, 0xFFC1, 0xFFC2 et 0xFFC3 ' hauteur de l'image en pixels hauteurImage% = buffer%(5) * 256 + buffer%(6) ' largeur de l'image en pixels largeurImage% = buffer%(7) * 256 + buffer%(8)
' sortie de boucle lorsque le marqueur recherché a été trouvé exit_while end_if
' saut vers le prochain marqueur index% = index% + longueurSegment% + 2 end_while else ' fichier BMP largeurImage% = buffer%(18) + (buffer%(19)*256) + (buffer%(20)*power(256,2)) + (buffer%(21)*power(256,3)) hauteurImage% = buffer%(22) + (buffer%(23)*256) + (buffer%(24)*power(256,2)) + (buffer%(25)*power(256,3)) end_if
' Fermer fichier binaire filebin_close 1 end_sub
Dernière édition par jjn4 le Mar 18 Juil 2023 - 16:08, édité 4 fois | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Largeur et hauteur d'une image JPG ou BMP Ven 14 Juil 2023 - 17:48 | |
| Salut jjn4, J'ai voulu télécharger l'image dont tu donnes le lien ci-dessus, mais ça renvoie sur un site anonfile... et si on clique "télécharger le fichier q-basic-queue.jpg" ça télécharge un fichier "q-basic....jpg_xxxxxx.exe" (donc un exécutable) ce que je n'aime pas trop, ça fait quoi à l'exécution ? a priori, je n'exécute pas... | |
| | | jjn4
Nombre de messages : 2747 Date d'inscription : 13/09/2009
| Sujet: Re: Largeur et hauteur d'une image JPG ou BMP Ven 14 Juil 2023 - 17:58 | |
| J'ai essayé de télécharger, ça marche : cela affiche l'image avec un logiciel correspondant Il suffit de cliquer à droite sur enregistrer l'image pour la télécharger où on veut. Et ensuite, curieusement, ça la téléchargre avec l'extension .jpg_ Après, il suffit de renommer en .jpg D'accord, c'est étrange, mais ça marche. | |
| | | Marc
Nombre de messages : 2466 Age : 63 Localisation : TOURS (37) Date d'inscription : 17/03/2014
| Sujet: Re: Largeur et hauteur d'une image JPG ou BMP Ven 14 Juil 2023 - 18:53 | |
| | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Largeur et hauteur d'une image JPG ou BMP Ven 14 Juil 2023 - 19:18 | |
| Merci Marc, c'est fait, c'est plus simple comme ça ! Ouais, bizarre cette image, mon programme ci-dessus affiche bien ses dimensions, par contre l'image chargée et affichée dans le picture est en noir et blanc, avec des manques de pixels sur des lignes verticales... | |
| | | Marc
Nombre de messages : 2466 Age : 63 Localisation : TOURS (37) Date d'inscription : 17/03/2014
| Sujet: Re: Largeur et hauteur d'une image JPG ou BMP Sam 15 Juil 2023 - 14:09 | |
| Bonjour à tous !
Je viens de regarder la structure de la dernière image de JJN4. Le marqueur 0xFFC0 est en 35ème position dans la succession des marqueurs. Or dans mon programme, j’ai limité la lecture des marqueurs aux seuls 25 premiers… Fatale erreur !
Dans la version de JL35 (voir son post dans ce fil de discussion le Jeu 13 Juil 2023 - 21:25), il saute de marqueur en marqueur sans limitation jusqu’à atteindre la fin du fichier. C’est une bonne stratégie que je vais appliquer à mon programme. Merci JL35 !
Je rectifie mon code source en conséquence.
Quant à la distorsion d’affichage de l’image fournie par le martien (JJN4 !) dans l’objet PICTURE, il n’y a pas grand-chose à faire…
Bonne programmation à tous ! | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Largeur et hauteur d'une image JPG ou BMP Sam 15 Juil 2023 - 15:47 | |
| Salut Marc, oui il y a anomalie dans cette image. Ma méthode de conversion habituelle jpg->bmp (load jpg dans un picture, save dans un bmp) ne marche pas. J'ai essayé la méthode Klaus (fonction "LoadAnyImageFile") ça ne marche pas non plus, l'image est récupérée avec ses défauts de couleurs. La conversion jpg bmp marche avec des ressources externes qui récupèrent bien les couleurs, par exemple Nconvert ou IrfanView, leurs analyses doivent être plus subtiles. Ma sub Irfanview, universelle (il faut adapter le chemin de l'exécutable) : - Code:
-
SUB Img1ToImg2(f$,fr$) ' Conversion image d'un format quelconque (Heic compris) vers un autre format quelconque EXECUTE_WAIT "C:\Progra~2\Irfanv~1\i_view64.exe|"+f$+" /convert="+fr$ END_SUB | |
| | | jjn4
Nombre de messages : 2747 Date d'inscription : 13/09/2009
| Sujet: Re: Largeur et hauteur d'une image JPG ou BMP Sam 15 Juil 2023 - 16:27 | |
| Finalement, on travaille au cas par cas, et je crains qu'il y ait encore des dizaines de cas particuliers, comme ceux que j'ai trouvés, à chaque fois avec de nouvelles particularités spéciales. Pour que chacun puisse explorer ses listes d'images, j'ai actualisé l'explorateur adapté de la méthode de Marc, publié ci-dessus sous le nom : Exploration des images par liste: (publié le 14 juillet 23 à 12h41) (je l'ai adapté à la dernière modification de Marc) Finalement, pour faire un mixe des deux, je pense qu'il serait bon d'y ajouter la marque de prudence de JL35, c'est à dire une transformation en bmp pour les cas détectés comme ne marchant pas avec la méthode élaborée ! N'est-ce pas une bonne idée ? | |
| | | Marc
Nombre de messages : 2466 Age : 63 Localisation : TOURS (37) Date d'inscription : 17/03/2014
| Sujet: Re: Largeur et hauteur d'une image JPG ou BMP Sam 15 Juil 2023 - 18:54 | |
| @JJN4 - JJN4 a écrit:
- Finalement, on travaille au cas par cas,
et je crains qu'il y ait encore des dizaines de cas particuliers, comme ceux que j'ai trouvés, à chaque fois avec de nouvelles particularités spéciales. Je ne pense pas qu'il existe des dizaines de cas particuliers. Pour l'instant j'ai une réussite à 100% de tous les répertoires photos à ma disposition. Aurais-tu trouvé une image qui ne passe pas ? | |
| | | jjn4
Nombre de messages : 2747 Date d'inscription : 13/09/2009
| Sujet: Re: Largeur et hauteur d'une image JPG ou BMP Dim 16 Juil 2023 - 13:55 | |
| - Marc a écrit:
- Je ne pense pas qu'il existe des dizaines de cas particuliers
Ah ouiiiiiiiiiiiiiiiii !!! Alors, j'ai essayé sur tous les ordinateurs de la famille pour voir, et j'en ai trouvé un nouveau ! Hi, hi, hi !!! https://anonfiles.com/Ic2f4f2dz8/hs17_jpg | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Largeur et hauteur d'une image JPG ou BMP Dim 16 Juil 2023 - 14:34 | |
| Salut jjn4,
C'est un peu troublant ton site de téléchargement anonfiles.com, au lieu de récupérer l'image .JPG on télécharge un exécutable .EXE: 'hs17.jpg_49517.exe' et on ne sait pas ce qu'il y a là-dedans ni ce que ça fait à l'exécution... | |
| | | Marc
Nombre de messages : 2466 Age : 63 Localisation : TOURS (37) Date d'inscription : 17/03/2014
| Sujet: Re: Largeur et hauteur d'une image JPG ou BMP Dim 16 Juil 2023 - 17:48 | |
| | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Largeur et hauteur d'une image JPG ou BMP Dim 16 Juil 2023 - 20:49 | |
| Un grand merci Marc, ça marche ! Bizarre cette image, ma sub de lecture des dimensions dans le fichier renvoie 0 x 0. Par contre l'image se charge bien dans un picture panoramic , que l'on peut sauvegarder en bmp et lire les dimensions dans le fichier... | |
| | | Contenu sponsorisé
| Sujet: Re: Largeur et hauteur d'une image JPG ou BMP | |
| |
| | | | Largeur et hauteur d'une image JPG ou BMP | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |