Récupérer les images de la bibliothèque

Bonjour

le sujet revient régulièrement, mais j’aimerai savoir si il est
possible de récupérer une image de la bibliothèque dont le format
n’est plus supportée par 4D. Je m’explique : lorsque l’on utiliser la
commande >LIRE IMAGE DANS BIBLIOTHEQUE, l’image récupérée n’est pas celle qui est dans la bibliothèque, mais une image générique indiquant que les PICT ne sont plus supportées.
Non pas que je sois contre, mais du coup, on n’accède plus à l’image initiale pour l’exporter et éventuellement la transformer, ce que je souhaiterai faire.
Du coup, existe-t-il un moyen d’obtenir le contenu source et de l’exporter en tant que tel ?

Bonjour,

À part le faire dans une version où le format était supporté, je ne vois pas.

Tout à fait d’accord, mais pour quelqu’un qui a déjà fait la transition ?
Je pose la question car j’ai fait le test suivant :

  • version 15R5 : que nenni -> l’image n’est plus disponible
  • version 15.5 : l’image est encore accessible

=> donc les données sont présentes dans le fichier de structure.

Le besoin est donc de pouvoir exporter sans transformation ou du moins les rendre accessible au lieu de purement les bloquer

Vieux fil, mais comme je viens de trouver une façon de faire : avec un 4D 32 bit, on peut lire et donc exporter les images, reste plus qu’à importer ensuite (fait avec v16r5). Je mets le code au besoin…
Export :
<code 4D>
$path_t:=Dossier système(Bureau)+“exportBiblio”+Séparateur dossier
CRÉER DOSSIER($path_t)
Si (ok=1)
//$ext_t:=".jpg" `pas bon, image trop dégradée
//$type_t:=“JPEG”
$ext_t:=".png"
$type_t:=“PNGf”
LISTE IMAGES DANS BIBLIOTHÈQUE($ref_al;$name_at)
Boucle ($i;1;Taille tableau($ref_al))
LIRE IMAGE DANS BIBLIOTHÈQUE($ref_al{$i};$image)
$nom_t:=Chaîne($ref_al{$i})+"•"+$name_at{$i}+$ext_t
$fileName_t:=$path_t+$nom_t
ÉCRIRE FICHIER IMAGE($fileName_t;$image;$type_t)
ASSERT(ok=1)
Fin de boucle
Fin de si
</code 4D>
Import :
<code 4D>
$path_t:=Dossier système(Bureau)+“exportBiblio”+Séparateur dossier
ASSERT(Tester chemin acces($path_t)=Est un dossier) //arno parano
LISTE DES DOCUMENTS($path_t;$doc_at;Chemin absolu+Ignorer invisibles)
Boucle ($i_l;1;Taille tableau($doc_at))
$doc_t:=$doc_at{$i_l}
LIRE FICHIER IMAGE($doc_t;$image_i)
Si (Taille image($image_i)=0)
TRACE //se produit si image exportée non lisible (appareil photo barré)
Sinon
$nom_t:=FS_documentName ($doc_t) //que le nom
$nom_t:=Fs_extRemove ($nom_t) //sans extension
$pos_l:=Position("•";$nom_t)
$ref_l:=Num(Sous chaîne($nom_t;1;$pos_l-1))
$nomImage_t:=Sous chaîne($nom_t;$pos_l+1)
ÉCRIRE IMAGE DANS BIBLIOTHÈQUE($image_i;$ref_l;$nomImage_t)
Fin de si
Fin de boucle

</code 4D>

Bonsoir Arnaud,

les exports ne sont possibles qu’avec une version 32 bits, quelque soit la version de 4D. Dès que tu passes en 64, c’est mort.

Le code qui est dans QST, accessible et libre, correspond à peu à ce que tu as publié :wink:

Patrick

Oui, mais une fois que tu es passé en 64b, tu peux tout à fait rouvrir la base en 32 le temps d’exporter les images si tu avais oublié de le faire après…