IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Composants FMX Delphi Discussion :

Enregistrer une image dans un téléphone


Sujet :

Composants FMX Delphi

  1. #1
    Membre habitué
    Profil pro
    Développeur informatique
    Inscrit en
    Mars 2002
    Messages
    391
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2002
    Messages : 391
    Points : 189
    Points
    189
    Par défaut Enregistrer une image dans un téléphone
    Bonjour

    J'essais depuis quelque temp de sauvegarder une image dans téléphone Android pour les fichiers Sqlite et fichier texte ca va bien mais j'ai des problemes a sauvegarder une image

    voici la ligne de commande que j,essais

    ImageViewer1.Bitmap.SaveToFile(TPath.GetPicturesPath + PathDelim + 'test.bmp'); ce code ne fonctionne pas

    si je remplace image par un memo avec ext .text ca fonctionne

    Merci de votre aide

    Mario

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    393
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 393
    Points : 637
    Points
    637
    Par défaut
    le format .bmp n'est pas pris en charge sous android, just .gif, .jpeg, .jpg ou .png

    essaye

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ImageViewer1.Bitmap.SaveToFile(TPath.GetPicturesPath + PathDelim + 'test.png');

  3. #3
    Membre habitué
    Profil pro
    Développeur informatique
    Inscrit en
    Mars 2002
    Messages
    391
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2002
    Messages : 391
    Points : 189
    Points
    189
    Par défaut [x10-fmx-Android]Enrégistrer une image dans téléphone
    Merci de votre aide

    J'ai fais plusieurs essais et je n'ai plus de message d'erreur mais je ne vois pas mon image dans l'imageviewer2 et je ne vois pas pourquoi voici mon code tres simple et la forme
    que j'utilise pour faire les essais.

    Mario

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
     
     uses system.IOUtils;
    procedure TForm2.Button1Click(Sender: TObject);
    begin
     //memo
       memo2.Lines.LoadFromFile(TPath.GetDocumentsPath + '/test.txt');
       DocPathLabel.Text := TPath.GetDocumentsPath;
    end;
     
     
    procedure TForm2.Button2Click(Sender: TObject);
    begin
    //memo
       Memo1.Lines.SaveToFile(GetHomePath + '/test.txt');
       DocPathLabel.Text := TPath.GetDocumentsPath;
    end;
     
    procedure TForm2.Button3Click(Sender: TObject);
    begin
    //image
       ImageViewer2.Bitmap.LoadFromFile(TPath.GetPicturesPath + PathDelim +  '/test.png');
       Label1.Text := TPath.GetDocumentsPath;
    end;
     
    procedure TForm2.Button4Click(Sender: TObject);
    begin
    //image
        ImageViewer1.Bitmap.SaveToFile(TPath.GetPicturesPath  + PathDelim + '/test.png');
        Label1.Text := TPath.GetDocumentsPath;
    end;
    Nom : test1.png
Affichages : 446
Taille : 10,9 Ko

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    393
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 393
    Points : 637
    Points
    637
    Par défaut
    surement parce que vous ajoutez 2 fois \

    faites

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     ImageViewer2.Bitmap.LoadFromFile(TPath.GetPicturesPath + PathDelim +  'test.png');

  5. #5
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 043
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 043
    Points : 40 957
    Points
    40 957
    Billets dans le blog
    62
    Par défaut
    Bonjour,

    je suggère plutôt d'utiliser TPath.Combine(TPath.GetPicturesPath,'Test.jpg') plutôt que PathDelim, ce qui évitera de se poser des questions sur le nombre de délimiteurs.

    il me semble aussi que l'utilisation de TBitmapCodecManager pour sauvegarder les images pourrait être utile/nécessaire. Je sais que j'ai déjà utilisé ce genre de choses mais je ne sais plus où .... jusqu'à ce que je le retrouve , bonnes recherches
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  6. #6
    Membre habitué
    Profil pro
    Développeur informatique
    Inscrit en
    Mars 2002
    Messages
    391
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2002
    Messages : 391
    Points : 189
    Points
    189
    Par défaut [x10-fmx-Android]Enrégistrer une image dans téléphone
    Bonjour

    Merci de votre aide ca me permet d'avancer dans mes connaissances et mon projet.

    Les commandes pour sauvegarder l'image fonctionne chaque fois que je fais une sauvegarde je vois lespace occupé dans mon téléphone augmenter mais mon probleme semble venir du fais que je sauvegarde une image vide.

    Si vous regarder l'image, j'essais de copier le contenue de l'image1 dans un fichier et la récupéré sur l'image2 qui est toujours vide.

    Nom : test1.png
Affichages : 384
Taille : 10,9 Ko

    Je dois mal configurer mon image avant de faire le transfert. Si vous avez une idée supplémentaire.Je continue ma lecture et essais avec ce que SergioMaster ma souligné (TBitmapCodecManager )
    pour voir ce que ca donne.

    Merci beaucoup

    Mario

  7. #7
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 043
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 043
    Points : 40 957
    Points
    40 957
    Billets dans le blog
    62
    Par défaut
    Bonjour,

    on a toujours pensé ou du moins moi, qu'il s'agissait d'une image prise par l'appareil photo pas une image écran !

    ce qu'il faudrait nous fournir c'est le code de capture de l'image à mon avis c'est là que ça coince. Ce sujet à déjà été abordé
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  8. #8
    Membre habitué
    Profil pro
    Développeur informatique
    Inscrit en
    Mars 2002
    Messages
    391
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2002
    Messages : 391
    Points : 189
    Points
    189
    Par défaut [x10-fmx]Enregistrer une image dans un téléphone
    Merci de votre aide

    J'ai fais un essais sur windows le plus simple possible et ca fonctionne comme je voudrais mais pas sur endroid

    J'ai placé quelque composant sur une fiche important 2 images 2 boutons le reste c'est decoratif
    Nom : testcopie2.png
Affichages : 413
Taille : 20,9 Ko




    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    unit Unit2;
     
    interface
     
    uses
      System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,
      FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, FMX.StdCtrls,
      FMX.Edit, FMX.Controls.Presentation, FMX.Layouts, FMX.ExtCtrls, FMX.Objects;
     
    type
      TForm2 = class(TForm)
        Layout1: TLayout;
        Button1: TButton;
        Label1: TLabel;
        CheckBox1: TCheckBox;
        Switch1: TSwitch;
        Edit1: TEdit;
        Edit2: TEdit;
        ArcDial1: TArcDial;
        Image1: TImage;
        Button4: TButton;
        Image2: TImage;
        procedure Button1Click(Sender: TObject);
        procedure Button4Click(Sender: TObject);
     
      private
        { Déclarations privées }
      public
        { Déclarations publiques }
      end;
     
    var
      Form2: TForm2;
     
    implementation
     
    {$R *.fmx}
     
     uses system.IOUtils;
     
    procedure TForm2.Button1Click(Sender: TObject);
       var
          S : string;
     
    begin
      Image1.Visible:=true;
        S := 'c:\00android\test.png';
      Image1.Bitmap := Layout1.MakeScreenshot;
      Image1.Bitmap.Canvas.BeginScene;
      try
        Image1.Bitmap.Canvas.Stroke.Color := TAlphaColorRec.Red;
        Image1.Bitmap.Canvas.DrawRect(RectF(1, 1, Image1.Bitmap.Width - 1, Image1.Bitmap.Height - 2), 0, 0, [], 1);
      finally
        Image1.Bitmap.Canvas.EndScene;
      end;
     
      Edit1.Text := format('Image = Width: %d - Height: %d', [Image1.Bitmap.Width, Image1.Bitmap.Height]);
      Edit2.Text := format('Original = Width: %d - Height: %d', [Round(Layout1.Width), Round(Layout1.Height)]);
     
      Image1.Bitmap.SaveToFile( S );
      showmessage('SAUVER');
     
     
      end;
     
     
    procedure TForm2.Button4Click(Sender: TObject);
     var
      s: string;
    begin
       S := 'c:\00android\test.png';
      image2.Bitmap.LoadFromFile(s);
     
    end;
     
    end.
    Je voudrais faire la même chose sur mon téléphone android.

    Merci de votre patience et de votre aide

    Mario

Discussions similaires

  1. [Android] [X10-Fmx-Android]Utilisation des images avec application android
    Par mario9 dans le forum Composants FMX
    Réponses: 2
    Dernier message: 24/12/2015, 15h58
  2. Réponses: 7
    Dernier message: 14/12/2015, 05h07
  3. Réponses: 13
    Dernier message: 02/11/2015, 16h37
  4. recuperer une image dans le téléphone
    Par enzostar dans le forum Android
    Réponses: 2
    Dernier message: 20/04/2010, 16h36
  5. [VB6] [Excel] Insérer une image dans une feuille
    Par mathias dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 09/10/2002, 07h44

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo