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

Lazarus Pascal Discussion :

Création de fichier de carte au format JNX


Sujet :

Lazarus Pascal

  1. #1
    Membre éprouvé
    Avatar de ChPr
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    2 022
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : France, Val d'Oise (Île de France)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 022
    Points : 1 049
    Points
    1 049
    Par défaut Création de fichier de carte au format JNX
    Bonjour à toutes et à tous,

    Je souhaite réaliser une application basée sur cette bibliothèque afin de créer des fichiers de cartes au format JNX pour GPS GARMIN.

    Des exemples montrent comment faire à partir d'une image pour réaliser un fichier JNX ne comportant qu'une seule tuile, c'est-à-dire l’image complète elle-même.

    Je voudrais pouvoir créer plusieurs tuiles qui sont un découpage en carrés ou rectangles de l’image de base sachant que de cette manière, leur traitement par le GPS est plus rapide.

    D'après ce que j'ai compris de la bibliothèque et des exemples, un fichier JNX est composé d'un en-tête dans lequel sont fournis diverses informations dont celles du découpage en tuile puis des blocs, au format JPG, représentant chaque tuile.

    Mon problème : je n'arrive pas à voir comment je peux délimiter les blocs de données de mon image source afin que chacun de ces blocs représente une tuile de cette image.

    Il y a évidemment la solution consistant, par un pré-traitement, à découper l'image source en autant d'images que je souhaite avoir de tuiles.

    Il existe certainement une manière de faire plus "sioux", mais je ne vois pas comment.

    Je vous remercie d'avance pour vos idées.

    Cordialement.

    Pierre

  2. #2
    Expert éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    10 731
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 731
    Points : 15 136
    Points
    15 136
    Par défaut
    Salut,

    je ne suis pas allé voir dans le code du fichier que tu soumets, mais en lisant ça :
    Citation Envoyé par ChPr Voir le message
    Il y a évidemment la solution consistant, par un pré-traitement, à découper l'image source en autant d'images que je souhaite avoir de tuiles.

    Il existe certainement une manière de faire plus "sioux", mais je ne vois pas comment.
    il me vient une réflexion toute simple : pourquoi faire simple quand on peut faire compliqué, c'est l'impression que j'ai.

    Parce que tu peux tourner ça dans tous les sens, au final, tu te retrouveras avec une grande image découpée en petits bouts, et je ne vois vraiment pas comment on pourrait faire autrement, à part en compliquant les choses.
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

  3. #3
    Candidat au Club
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Décembre 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2011
    Messages : 3
    Points : 4
    Points
    4
    Par défaut
    Bonjour,
    Je ne connais pas Lazarus et son environnement de développement , mais en .Net si ton image tient en mémoire (<1.5 Go) , il n'y a pas de problème de faire la découpe en tuiles de l'image initiale avec 2 boucles imbriquées X, Y , et pour chaque tuile de créer un bitmap (class Bitmap : 1 des 12 constructeurs) et de récupérer un tableau de bits représentant les octets du fichier jpeg ( méthod save 1 des 5 surcharges) par redirection du flux sur la mémoire (MemoryStream) plutôt qu'un fichier (FileStream). Tu pourras ainsi écrire directement dans ton fichier JNX sans passer par des fichiers intermédiaires. Cette classe est issue de GDI+ donc des API Win32. Tu dois surement avoir un équivalent accessible avec Lazarus.
    Cordialement

  4. #4
    Expert éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    10 731
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 731
    Points : 15 136
    Points
    15 136
    Par défaut
    Hello,

    Et si on réfléchit bien, un TImageList c'est exactement la même chose sauf que les bitmaps y sont rangés à la queue-leu-leu (1D) au lieu d'y être en rectangle (2D), que ça s'appelle maintenant "tuiles" au lieu d'images (question bête : dans cette notion de tuiles, est-ce qu'on retrouve le principe du recouvrement comme le font les tuiles d'un vrai toit ?), et qu'il s'agit de jpeg d'un côté et de bitmap (peut-être png aussi, je n'ai pas fouillé) de l'autre.

    Mais ça change quoi au fait qu'il va falloir découper l'image principale et que si ce n'est pas toi qui le fait, ça sera un autre "sioux" dans la bibliothèque qu'il proposera ?
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

  5. #5
    Modérateur
    Avatar de tourlourou
    Homme Profil pro
    Biologiste ; Progr(amateur)
    Inscrit en
    Mars 2005
    Messages
    3 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Biologiste ; Progr(amateur)

    Informations forums :
    Inscription : Mars 2005
    Messages : 3 858
    Points : 11 300
    Points
    11 300
    Billets dans le blog
    6
    Par défaut
    Bonjour,

    De ce que je lis ici, je comprends que les tuiles sont jpeg (sans le FFD8 initial), font usuellement 256x256 pixels, qu'elles sont décrites par un tableau de descripteurs de tuiles qui fournit les coordonnées, la taille de chaque image et son offset.

    Il me semble que les tuiles sont donc facilement accessibles dans un flux, grâce à ce tableau (sous réserve de l'ordre des tuiles dans ce tableau, que je n'ai pas vu mentionné).

    Mais pour autant qu'elles sont chacune des jpeg individuels (sans le FFD8 initial), et non des portions de jpeg pointées dans le flux d'une seule image.

    Je ne vois donc pas d'autre solution qu'un découpage préalable, sauf fonctionnalité offerte dans la bibliothèque, ce qu'un examen rapide ne m'a pas révélé...
    Delphi 5 Pro - Delphi 11.3 Alexandria Community Edition - CodeTyphon 6.90 sous Windows 10 ; CT 6.40 sous Ubuntu 18.04 (VM)
    . Ignorer la FAQ Delphi et les Cours et Tutoriels Delphi nuit gravement à notre code !

  6. #6
    Membre éprouvé
    Avatar de ChPr
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    2 022
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : France, Val d'Oise (Île de France)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 022
    Points : 1 049
    Points
    1 049
    Par défaut
    Je vous remercie tous pour ces précisions que vous m'avez apportées.

    Vous me confirmez donc qu'un prédécoupage est la solution.

    Cordialement.

    Pierre

  7. #7
    Membre éprouvé
    Avatar de ChPr
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    2 022
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : France, Val d'Oise (Île de France)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 022
    Points : 1 049
    Points
    1 049
    Par défaut
    Citation Envoyé par tourlourou Voir le message
    ... sous réserve de l'ordre des tuiles dans ce tableau, que je n'ai pas vu mentionné). ...
    En analysant un fichier JNX composé de 4 tuiles avec l'exemple 2 de la bibliothèque que j'avais mentionnée, je constate que l'ordre se fait en partant du haut-gauche pour arriver au haut-droit par un balayage en X, puis on passe à la suivante en Y et on reprend le balayage en X jusqu'à arriver au bas-droit :

    0 1
    2 3

    Cordialement.

    Pierre

Discussions similaires

  1. Création d'un fichier xls depuis fichier xlsm : pb de format
    Par MyJero dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 17/04/2015, 11h36
  2. [DOM] Création de fichier XML format spécifique avec PHP
    Par aurelie20 dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 20/11/2012, 14h43
  3. Création d'un fichier txt structuré et formaté
    Par guiyom31 dans le forum MATLAB
    Réponses: 5
    Dernier message: 30/03/2011, 11h35
  4. création de fichier sous le format CSV
    Par nguex dans le forum Windows
    Réponses: 1
    Dernier message: 20/04/2007, 20h36
  5. création d'une carte au format jpg
    Par TocTocKiéLà? dans le forum C++
    Réponses: 2
    Dernier message: 13/02/2007, 17h28

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