Ce sujet est résolu.
1 | |||||||
Auteur | Messages | ||||||
---|---|---|---|---|---|---|---|
jibi | #1 Posté le 22/4/2020 à 14:16:32 | ||||||
codergambas.jimdofree.com![]() | Bonjour à vous :-) dans form_open j'ai un dimensionnent d'image tel que : cote = Desktop.H * zoom myImg = myImg.Image.Stretch(cote, cote).Picture myImg.Save(chemin & "/myImg.jpg") A l'ouverture de la form tout est ok Mais lorsque je modifie le zoom avec un slider, il y a l'erreur enable to save picture dans fmain pour la ligne myImg.Save(chemin & "/myImg.jpg") la sauvegarde se fait avec chemin = user.Home & "/.appliGambas" Cette image une fois redimensionnée et sauvegardée est positionnée dans un pictureBox zoom varie de 0.1 à 1 et sert à modifier la taille de la form et dans form_arrange Me.H = NBL* cote + Panel1.H Me.W = Me.H + 50 Pourquoi à l'ouverture la sauvegarde cette image est possible et pas ensuite ? Debian GNU/Linux 11 64-bit | ||||||
valaquarus | #2 Posté le 22/4/2020 à 17:00:19 | ||||||
-- Unus Ex Altera --![]() | Bonsoir, myImg = myImg.Image.Stretch(cote, cote).Picture installation dans la picture myImg.Save(chemin & "/myImg.jpg") cette commande essaye de sauvegarder la picture pas l'image donc tu as une erreur. Sépare la commande d'installation de l'image dans la picture et la sauvegarde de l'image et normalement ça devrait le faire. Philippe Système d'exploitation : KDE neon 6.0 ~ Version Gambas : 3.19.3 | ||||||
jibi | #3 Posté le 22/4/2020 à 18:50:56 | ||||||
codergambas.jimdofree.com![]() | Bonsoir valaquarus, Ces deux commandes fonctionnent à l'ouverture de la form, pourquoi est ce que cela ne fonctionne plus ensuite ? Sépare la commande d'installation de l'image dans la picture et la sauvegarde de l'image Séparer myImg = myImg.Image.Stretch(cote, cote).Picture et myImg.Save(chemin & "/myImg.jpg") ? dans deux fonctions différentes ? Debian GNU/Linux 11 64-bit | ||||||
valaquarus | #4 Posté le 22/4/2020 à 22:06:26 | ||||||
-- Unus Ex Altera --![]() | Normal à l'ouverture tu charges l'image et la mets dans la picture mais après tu demandes de sauvegarder la picture puisque tu as dis myimg=la picture. J'aurais chargé l'image par image.load puis après j'aurais affecté l'image dans une picture (bien que tu l'as dit cela fonctionne à l'ouverture) puis à la fermeture après tous les traitements fait je sauvegarderai l'image par image.save après avoir affecté le résultat de mes traitements dans une image récupérée de la picture. Un truc du genre pour charger les images :
mFileImage étant un tableau string[] qui aurait récupéré les images du répertoire que je sonde. Pour la sauvegarde reste plus qu'à faire après tous les traitements que tu veux :
Les images et les pictures ne fonctionnent pas de la même manière et moi aussi j'ai mis un certain temps à comprendre pourquoi il y avait deux objets qui représentaient la même chose en fait il représentent la même chose mais de deux manières différentes avec des particularités d'affichage et de traitement différents avec une gestion de la mémoire séparée et différente donc leur utilité est fonction de ce que tu veux en termes de rapidité d'affichage et quantité de traitement. Si tu traites une image à la fois,[ les pictures sont rapides à l'affichage mais pour sauvegarder tu es obligé de repasser par une image. Si par contre tu traites tout un répertoire pour affichage de toutes les photos, les images sont à mon avis plus adaptées même si plus lente à l'affichage. je transformerai ainsi :
En espérant que ça fonctionne. Système d'exploitation : KDE neon 6.0 ~ Version Gambas : 3.19.3 | ||||||
valaquarus | #5 Posté le 22/4/2020 à 22:44:29 | ||||||
-- Unus Ex Altera --![]() | Rebonsoir, pour comparaison je mets ici deux fonctions que j'utilise, l'une charge les fichiers image dans des pictures, l'autre fait exactement la même chose mais dans des images, l'affectation est la même sauf à destination soit de picturebox[] soit de image[]. avec les pictures il suffit de les affecter, pour les images il faut les dessiner (Draw) d'où l'utilisation de DrawingArea[] :
personnellement le résultat me plaît plus avec les images car je travaille sur les fichiers alors qu'avec les pictures tu travailles sur un objet éphémère en mémoire ; c'est d'ailleurs pour ça qu'il y a une zone mémoire réservée aux pictures qu'il ne faut pas oublier de vider (flush) sous peine de rapide saturation de celle-ci mais c'est rapide à charger et à afficher. Système d'exploitation : KDE neon 6.0 ~ Version Gambas : 3.19.3 | ||||||
jibi | #6 Posté le 23/4/2020 à 10:19:53 | ||||||
codergambas.jimdofree.com![]() | ouaaa merci pour ces réponses valaquarus ! je vais prendre le temps d'étudier tes propositions Effectivement le traitement des images est à destination d'un tableau de picturebox ! Je te tiens au jus, encore merci beaucoup Debian GNU/Linux 11 64-bit | ||||||
jibi | #7 Posté le 23/4/2020 à 14:40:38 | ||||||
codergambas.jimdofree.com![]() | j'ai repris mon code et cela est ok maintenant en utilisant
Merci à toi ![]() Debian GNU/Linux 11 64-bit | ||||||
1 |