Identifier l'image source dans 1 picture ???

Le
LE TROLL
Bonjour,

Dans une picture, quand on met une photo, via
l'explorateur de propriétés, après, on ne sait
plus quel est le nom de la photo mise, comment
faire pour le savoir ???

Exemple, dans picture1, avec l'explorateur de
propriété, à picture [] je mets photo1.bmp,
mais si je ne me souviens plus, comment savoir
que j'ai mis photo1.bmp dans picture1 ???

--
Merci beaucoup, au revoir et à bientôt :o)

Romans, logiciels, email, site personnel
http://irolog.free.fr/joe.htm
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Jacques93
Le #15357721
Bonjour LE TROLL,
LE TROLL a écrit :
Bonjour,

Dans une picture, quand on met une photo, via
l'explorateur de propriétés, après, on ne sait
plus quel est le nom de la photo mise, comment
faire pour le savoir ???

Exemple, dans picture1, avec l'explorateur de
propriété, à picture [...] je mets photo1.bmp,
mais... si je ne me souviens plus, comment savoir
que j'ai mis photo1.bmp dans picture1 ???




A ma connaissance, on ne peut pas, sauf à mettre cette information dans
un commentaire. Lorsque l'on affecte une image à une PictureBox, cela a
deux conséquences :

Dans le .frm est indiqué l'offset à partir duquel se trouve les
données binaires dans le .frx correspondant. Par exemple, si c'est la
première image (Offset = 0000) :

Begin VB.Form Form1
[...]
Begin VB.PictureBox Picture1
Height = 1935
Left = 660
Picture = "Form1.frx":0000
[...]
End
End

et les données binaires sont écrites dans le .frx, à l'offset prévu.

Cela est valable pour toutes les resources de type bmp, jpg, ani, ico,
etc ... Ceci peut se comprendre dans la mesure ou l'on peut ainsi
transférer un projet d'une machine à une autre sans se préoccuper de
l'endroit où se trouvent ces images


Il me semble qu'il existait un shareware frxSplitter, permettant de
d'extraire les différents éléments d'un .frx, mais pas leurs chemins
Et le lien de téléchargement semble HS

--

Cordialement,

Jacques.
LE TROLL
Le #15357711
merci :o)

--
Merci beaucoup, au revoir et à bientôt :o)
------
Romans, logiciels, email, site personnel
http://irolog.free.fr/joe.htm
------------------------------------------------------------------------------------
"Jacques93" a écrit dans le
message de news:

| Bonjour LE TROLL,
| LE TROLL a écrit :
| > Bonjour,
| >
| > Dans une picture, quand on met une photo,
via
| > l'explorateur de propriétés, après, on ne sait
| > plus quel est le nom de la photo mise, comment
| > faire pour le savoir ???
| >
| > Exemple, dans picture1, avec l'explorateur
de
| > propriété, à picture [...] je mets photo1.bmp,
| > mais... si je ne me souviens plus, comment
savoir
| > que j'ai mis photo1.bmp dans picture1 ???
| >
|
| A ma connaissance, on ne peut pas, sauf à mettre
cette information dans
| un commentaire. Lorsque l'on affecte une image à
une PictureBox, cela a
| deux conséquences :
|
| Dans le .frm est indiqué l'offset à partir
duquel se trouve les
| données binaires dans le .frx correspondant. Par
exemple, si c'est la
| première image (Offset = 0000) :
|
| Begin VB.Form Form1
| [...]
| Begin VB.PictureBox Picture1
| Height = 1935
| Left = 660
| Picture = "Form1.frx":0000
| [...]
| End
| End
|
| et les données binaires sont écrites dans le
.frx, à l'offset prévu.
|
| Cela est valable pour toutes les resources de
type bmp, jpg, ani, ico,
| etc ... Ceci peut se comprendre dans la mesure
ou l'on peut ainsi
| transférer un projet d'une machine à une autre
sans se préoccuper de
| l'endroit où se trouvent ces images
|
| |
| Il me semble qu'il existait un shareware
frxSplitter, permettant de
| d'extraire les différents éléments d'un .frx,
mais pas leurs chemins
| Et le lien de téléchargement semble HS
|
| --
|
| Cordialement,
|
| Jacques.
|
Jacques93
Le #15357701
Jacques93 a écrit :
Bonjour LE TROLL,



[...]
Il me semble qu'il existait un shareware frxSplitter, permettant de
d'extraire les différents éléments d'un .frx, mais pas leurs chemins
Et le lien de téléchargement semble HS



Un lien valide, le produit s'appelle FrxSplit :


Produit valable 30 jours (Il peut être nécessaire de rebooter, pour
avoir accès à la période d'essai)

--

Cordialement,

Jacques.
LE TROLL
Le #15357691
Jacques,

Je viens d'essayer, déjà en anglais pas
facile, sinon, il montre les dessins de ce qu'il y
a par form, mais ça ne dit pas "le nom" de l'objet
(picture1(x)) par exemple, alors ça n'a aucune
utilité, car ça dit juste ce qu'il y a dans la
form, mais ça, on le voit en regardent la form...
Pas moyen de connaître le nom : tel objet a
embarqué telle image !

Car on voit les objets sur la form, on voit
les images aussi, par contre qui a quoi, là est la
question, surtout quand il y en a un grand
nombre...

Tu dis que dans le frx il note l'offset,
offset d'où ?
Car, si on déplace le fichier source, voire qu'on
détruit l'image, le programme la conserve,
d'ailleurs, plus y a d'images, plus l'exe est
gros, il les encapsule, les embarque, mais avant,
je ne sais pas où il les met ?

En fait, je prends mon exemple, j'en ai pour 2
Mo d'images, que j'ai collé en plusieurs endroits
dans mon programmes, mais si je fais la somme de
la taille de tous les fichiers du programme, je
n'atteins jamais cette taille, loin s'en faut,
donc il doit les coller ailleurs dans un fichier
invisible je présume, c'est ça qu'il faudrait
trouver...

--
Merci beaucoup, au revoir et à bientôt :o)
------
Romans, logiciels, email, site personnel
http://irolog.free.fr/joe.htm
------------------------------------------------------------------------------------
"Jacques93" a écrit dans le
message de news:

| Jacques93 a écrit :
| > Bonjour LE TROLL,
|
| [...]
| > Il me semble qu'il existait un shareware
frxSplitter, permettant de
| > d'extraire les différents éléments d'un .frx,
mais pas leurs chemins
| > Et le lien de téléchargement semble HS
|
| Un lien valide, le produit s'appelle FrxSplit :
|
|
|
| Produit valable 30 jours (Il peut être
nécessaire de rebooter, pour
| avoir accès à la période d'essai)
|
| --
|
| Cordialement,
|
| Jacques.
Jacques93
Le #15357681
LE TROLL a écrit :
Jacques,

Je viens d'essayer, déjà en anglais pas
facile, sinon, il montre les dessins de ce qu'il y
a par form, mais ça ne dit pas "le nom" de l'objet
(picture1(x)) par exemple, alors ça n'a aucune
utilité, car ça dit juste ce qu'il y a dans la
form, mais ça, on le voit en regardent la form...
Pas moyen de connaître le nom : tel objet a
embarqué telle image !

Car on voit les objets sur la form, on voit
les images aussi, par contre qui a quoi, là est la
question, surtout quand il y en a un grand
nombre...



C'est bien ce que je dis dans le précédent message, cette information
n'étant pas stockée, elle ne peut être retrouvée. Cela fonctionne un peu
comme un décompilateur. Les noms des variables sont attribuées
arbitrairement. Ici :

Nom de la Form, Extension, Numéro

par exemple Form1_JPG001.JPG. Tu peux vérifier ceci dans le répertoire
'Example' de FRXSplit.

Tu dis que dans le frx il note l'offset,
offset d'où ?



Non, dans le .Frm, il indique l'offset où se trouve l'objet dans le .Frx

Le premier objet se trouve par défaut à l'offset 0 (Début du fichier
.frx). Si cet objet fait 16384 octets, le second objet se trouvera a
l'offset 16384 (ou 0x4000) dans le fichier .frx (à quelques octets près,
VB ajoute quelques informations, semble t-il). Et ainsi de suite ...

Car, si on déplace le fichier source, voire qu'on
détruit l'image, le programme la conserve,
d'ailleurs, plus y a d'images, plus l'exe est
gros, il les encapsule, les embarque, mais avant,
je ne sais pas où il les met ?



Dans LES . Frx (un par feuille si elle contient des données binaires)

En fait, je prends mon exemple, j'en ai pour 2
Mo d'images, que j'ai collé en plusieurs endroits
dans mon programmes, mais si je fais la somme de
la taille de tous les fichiers du programme, je
n'atteins jamais cette taille, loin s'en faut,
donc il doit les coller ailleurs dans un fichier
invisible je présume, c'est ça qu'il faudrait
trouver...




Là ,un fichier caché, j'en doute fortement, et je ne constate pas ce
phénomène.

L'intérêt des .frx est de pouvoir transférer simplement un projet, via
e-mail par exemple, sans se soucier des éléments annexes, images,
curseurs, icônes, etc. Par contre ces objets ne sont pas modifiables.

En les extrayant avec FRXSplit, tu peux modifier, ou changer un de ces
élements.

--

Cordialement,

Jacques.
LE TROLL
Le #15357671
Jacques, toutes mes excuses, tu as raison, on
retrouve bien la taille dans le frx, si c'est
incompressible.

C'est bizarre que dans tout ce fatras, y ait pas
le nom de l'objet ???

Mais alors, comment fait VB pour mettre l'image
dans le bon objet lors d'une ouverture ???



--
Romans, logiciels, email, site personnel
http://irolog.free.fr/joe.htm
------------------------------------------------------------------------------------
"Jacques93" a écrit dans le
message de news:

| LE TROLL a écrit :
| > Jacques,
| >
| > Je viens d'essayer, déjà en anglais pas
| > facile, sinon, il montre les dessins de ce
qu'il y
| > a par form, mais ça ne dit pas "le nom" de
l'objet
| > (picture1(x)) par exemple, alors ça n'a aucune
| > utilité, car ça dit juste ce qu'il y a dans la
| > form, mais ça, on le voit en regardent la
form...
| > Pas moyen de connaître le nom : tel objet a
| > embarqué telle image !
| >
| > Car on voit les objets sur la form, on
voit
| > les images aussi, par contre qui a quoi, là
est la
| > question, surtout quand il y en a un grand
| > nombre...
|
| C'est bien ce que je dis dans le précédent
message, cette information
| n'étant pas stockée, elle ne peut être
retrouvée. Cela fonctionne un peu
| comme un décompilateur. Les noms des variables
sont attribuées
| arbitrairement. Ici :
|
| Nom de la Form, Extension, Numéro
|
| par exemple Form1_JPG001.JPG. Tu peux vérifier
ceci dans le répertoire
| 'Example' de FRXSplit.
|
| > Tu dis que dans le frx il note l'offset,
| > offset d'où ?
|
| Non, dans le .Frm, il indique l'offset où se
trouve l'objet dans le .Frx
|
| Le premier objet se trouve par défaut à l'offset
0 (Début du fichier
| .frx). Si cet objet fait 16384 octets, le second
objet se trouvera a
| l'offset 16384 (ou 0x4000) dans le fichier .frx
(à quelques octets près,
| VB ajoute quelques informations, semble t-il).
Et ainsi de suite ...
|
| > Car, si on déplace le fichier source, voire
qu'on
| > détruit l'image, le programme la conserve,
| > d'ailleurs, plus y a d'images, plus l'exe est
| > gros, il les encapsule, les embarque, mais
avant,
| > je ne sais pas où il les met ?
|
| Dans LES . Frx (un par feuille si elle contient
des données binaires)
|
| > En fait, je prends mon exemple, j'en ai
pour 2
| > Mo d'images, que j'ai collé en plusieurs
endroits
| > dans mon programmes, mais si je fais la somme
de
| > la taille de tous les fichiers du programme,
je
| > n'atteins jamais cette taille, loin s'en faut,
| > donc il doit les coller ailleurs dans un
fichier
| > invisible je présume, c'est ça qu'il faudrait
| > trouver...
| >
|
| Là ,un fichier caché, j'en doute fortement, et
je ne constate pas ce
| phénomène.
|
| L'intérêt des .frx est de pouvoir transférer
simplement un projet, via
| e-mail par exemple, sans se soucier des éléments
annexes, images,
| curseurs, icônes, etc. Par contre ces objets ne
sont pas modifiables.
|
| En les extrayant avec FRXSplit, tu peux
modifier, ou changer un de ces
| élements.
|
| --
|
| Cordialement,
|
| Jacques.
Jean-marc
Le #15357651
LE TROLL wrote:
Jacques, toutes mes excuses, tu as raison, on
retrouve bien la taille dans le frx, si c'est
incompressible.

C'est bizarre que dans tout ce fatras, y ait pas
le nom de l'objet ???

Mais alors, comment fait VB pour mettre l'image
dans le bon objet lors d'une ouverture ???





Tout simplement comme Jacques te l'a indiqué dans son
premier post, grâce aux lignes suivantes du .frm:

Begin VB.Form Form1
[...]
Begin VB.PictureBox Picture1
Height = 1935
Left = 660
Picture = "Form1.frx":0000
[...]
End
End

Lors de la compilation, la ressource (contenu dans le .frx) est
embarquée dans l'exécutable.

En fait, à partir du moment ou tu assignes depuis l'interface de VB une
image à un PictureBox, le .frx est créé et le lien avec le fichier d'origine
est perdu; ne subsistent alors plus que:
- Une indication dans le .frm de l'endroit ou se trouvent les données dans
le .frx (le nom du frm et l'offset dont parlait Jacques)
- Le .frx lui même, qui contient les données (raw data)

A partir de ce moment, tu peux même détruire l'image source: seules les
données du
.frx sont utilisées de toute façon.

Et lors de la compilation, les données du .frx sont incluses dans
l'exécutable et
dès lors utilisées directement par ce dernier.

Lorsque tu distribues ton exe, il est "autonome" : nul besoin de distribuer
le .frx
et bien sur pas non plus le fichier image d'origine.

Maintenant, si c'est important pour toi de savoir quel fichier tu as mis
dans ta picturebox, tu peux:
- Mettre un commentaire dans ton code, comme indiqué par Jacques
- Utiliser la propriété "Tag" de la picturebox, qui permet de stocker
n'importe
quoi donc par exemple le nom de ton fichier source.

Tu peux alors même dans ton code écrire ceci par exemple:

Private Sub Command1_Click()

MsgBox Picture1.Tag
End Sub

Bref, les moyens de manquent pas :-)

--
Jean-marc Noury (jean_marc_n2)
Microsoft MVP - Visual Basic
FAQ VB: http://faq.vb.free.fr/
mailto: remove '_no_spam_' ;
Publicité
Poster une réponse
Anonyme