Sauvegarder une image dans un dossier de l'application

Toutes les questions sur le développement Mobile, y compris la partie script.
corf
Messages : 20
Inscription : 01 Mars 2017 23:38

Sauvegarder une image dans un dossier de l'application

Message par corf » 07 Avr 2017 12:25

Bonjour,
Dans mon application je reçois une image par une Socket et donc je voudrais l'enregistrer dans un répertoire en C#.
J'ai chercher sur le net mais rien de vraiment concret.
Help svp !!!
 ! Message de : boubouk50
1/Mauvaise section.
2/ Message trop simpliste, pas assez détaillé. Tu ne dis même pas c'est pour quelle plateforme! Entre Android et PC, ce n'est pas la même chose. Comment est récupérée ton image? est-ce une Texture2D? des bytes[]?

corf
Messages : 20
Inscription : 01 Mars 2017 23:38

Re: Sauvegarder une image dans un dossier de l'application

Message par corf » 07 Avr 2017 16:21

Je fais les tests sur le PC mais l'application sera sur tablette et téléphone de préférence Android
je reçois dans la socket une image en format png que je doit afficher dans mon application.
Donc dès que je la reçois je dois l'enregistrer dans un répertoire (Asset/Ressources/ Images)

Avatar de l’utilisateur
boubouk50
ModoGenereux
ModoGenereux
Messages : 6214
Inscription : 28 Avr 2014 11:57
Localisation : Saint-Didier-en-Bresse (71)

Re: Sauvegarder une image dans un dossier de l'application

Message par boubouk50 » 07 Avr 2017 16:29

S'il te plaît fait un effort sur les informations données. La seule qui soit intéressante ici, et qu'on a déjà, c'est la plateforme Android.

Une donnée ne peut-être enregistrée dans un dossier de l'application. Ces données sont compilées et non-accessibles, la sauvegarde se fera dans un autre répertoire de ton téléphone (généralement Application.persitentDataPath).
Est-il nécessaire de la sauvegarder? Tu peux très bien la garder en mémoire le temps de l'application.

Essaie de mieux chercher sur le forum, il y a toutes les réponses sur ce forum, je les ai déjà fournies plusieurs fois. C'est souvent une question de mots-clés choisis, je sais que ce n'est pas évident quand on a pas tout le vocabulaire du temps-réel, mais en cherchant bien on trouve quand même.
"Ce n'est pas en améliorant la bougie, que l'on a inventé l'ampoule, c'est en marchant longtemps."
Nétiquette du forum
Savoir faire une recherche
Apprendre la programmation

corf
Messages : 20
Inscription : 01 Mars 2017 23:38

Re: Sauvegarder une image dans un dossier de l'application

Message par corf » 12 Avr 2017 10:33

Alors peut-on afficher une image (PNG) sans qu'elle soit enregistrée ?


et si oui comment faire ?

Avatar de l’utilisateur
boubouk50
ModoGenereux
ModoGenereux
Messages : 6214
Inscription : 28 Avr 2014 11:57
Localisation : Saint-Didier-en-Bresse (71)

Re: Sauvegarder une image dans un dossier de l'application

Message par boubouk50 » 12 Avr 2017 11:01

Tu la récupères par socket, donc tu l'as en mémoire, c'est la même chose que si tu l'avais enregistrée puis chargée. Il ne te reste plus qu'à l'afficher.
"Ce n'est pas en améliorant la bougie, que l'on a inventé l'ampoule, c'est en marchant longtemps."
Nétiquette du forum
Savoir faire une recherche
Apprendre la programmation

corf
Messages : 20
Inscription : 01 Mars 2017 23:38

Re: Sauvegarder une image dans un dossier de l'application

Message par corf » 14 Avr 2017 10:16

Du coup j'ai un peu changer la façon de l'afficher:
Je l'a reçois en base64 puis je l'a décode et je l'écris dans une image "neutre".
le code suivant change le code source de l'image neutre

code :

Code : Tout sélectionner

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using System;
using System.IO;


public class RecupImage : MonoBehaviour
{
    void ChangeImage (string note) {
        Debug.Log("PROG IMAGE"+note);

            byte[] result = System.Convert.FromBase64String(note);

            System.IO.File.WriteAllBytes(@"Assets/Resources/Images/ImageDiapo.png", result);
               
        }  
}
Problème résolu :-D

Avatar de l’utilisateur
boubouk50
ModoGenereux
ModoGenereux
Messages : 6214
Inscription : 28 Avr 2014 11:57
Localisation : Saint-Didier-en-Bresse (71)

Re: Sauvegarder une image dans un dossier de l'application

Message par boubouk50 » 14 Avr 2017 10:44

As-tu réellement besoin de l'enregistrer?
https://docs.unity3d.com/ScriptReferenc ... Image.html
Par exemple tu pourrais directement lire les bytes et les mettre dans ton image:

Code : Tout sélectionner

monImageEnJeu.LoadImage (System.Convert.FromBase64String (note));
C'est quand même bien moins lourd et plus rapide.
Je n'ai pas testé, mais à priori ça devrait marcher.

Si ton problème est résolu, merci d'éditer le titre du premier message en ajoutant [RESOLU] au début de celui-ci.
"Ce n'est pas en améliorant la bougie, que l'on a inventé l'ampoule, c'est en marchant longtemps."
Nétiquette du forum
Savoir faire une recherche
Apprendre la programmation

corf
Messages : 20
Inscription : 01 Mars 2017 23:38

Re: Sauvegarder une image dans un dossier de l'application

Message par corf » 18 Avr 2017 15:13

Le problème est au 3/4 résolu .
Maintenant le problème est que il faut que je rafraichisse l'image.

Lorsque j'écris la nouvelle image dans l'ancienne tout se passe bien mais pour l'afficher il faut que je clique ailleurs que dans unity et lorsque je reclique sur unity là l'image se change, elle ne se change pas toute seul.

D'où l’intérêt de rafraichir l'image ou de la recharger.

Il y a moyen de faire cela ?

corf
Messages : 20
Inscription : 01 Mars 2017 23:38

Re: Sauvegarder une image dans un dossier de l'application

Message par corf » 18 Avr 2017 15:14

LoadImage ne fonctionne pas il n'est pas connu...

Avatar de l’utilisateur
boubouk50
ModoGenereux
ModoGenereux
Messages : 6214
Inscription : 28 Avr 2014 11:57
Localisation : Saint-Didier-en-Bresse (71)

Re: Sauvegarder une image dans un dossier de l'application

Message par boubouk50 » 18 Avr 2017 15:29

corf a écrit :LoadImage ne fonctionne pas il n'est pas connu...
??? Il est dans la doc, la fonction existe donc.
Comment l'emploies-tu?
corf a écrit :D'où l’intérêt de rafraichir l'image ou de la recharger.
Tu te mords la queue un peu... Puisque pour la recharger, il te faut utiliser LoadImage ()...
C'est pourtant logique, tu changes la source alors que tu as déjà chargée l'image, les données chargées ne sont donc pas affectées, c'est pour cela que je te dis de ne pas la sauvegarder (si tu n'en as pas le besoin) mais bien d'utiliser directement les données que tu as reçues.
Donc: LoadImage () des données du socket.
boubouk50 a écrit :Tu la récupères par socket, donc tu l'as en mémoire, c'est la même chose que si tu l'avais enregistrée puis chargée. Il ne te reste plus qu'à l'afficher.
Je t'avais déjà donné l'info...
Je ne vais perpétuellement répéter la même réponse à chaque fois, merci de prendre en compte mes réponses... :pascontent2:
"Ce n'est pas en améliorant la bougie, que l'on a inventé l'ampoule, c'est en marchant longtemps."
Nétiquette du forum
Savoir faire une recherche
Apprendre la programmation

Répondre

Revenir vers « Développement plateformes mobile Iphone et Android »