FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  MembresMembres  Connexion  
Derniers sujets
» Logiciel de planétarium.
Décodage base64 Emptypar Pedro Aujourd'hui à 8:08

» Un autre pense-bête...
Décodage base64 Emptypar Froggy One Jeu 21 Nov 2024 - 15:54

» Récupération du contenu d'une page html.
Décodage base64 Emptypar Pedro Sam 16 Nov 2024 - 14:04

» Décompilation
Décodage base64 Emptypar JL35 Mar 12 Nov 2024 - 19:57

» Un album photos comme du temps des grands-mères
Décodage base64 Emptypar jjn4 Mar 12 Nov 2024 - 17:23

» traitement d'une feuille excel
Décodage base64 Emptypar jjn4 Jeu 7 Nov 2024 - 3:52

» Aide-mémoire mensuel
Décodage base64 Emptypar jjn4 Lun 4 Nov 2024 - 18:56

» Des incomprèhension avec Timer
Décodage base64 Emptypar Klaus Mer 30 Oct 2024 - 18:26

» KGF_dll - nouvelles versions
Décodage base64 Emptypar Klaus Mar 29 Oct 2024 - 17:58

» instructions panoramic
Décodage base64 Emptypar maelilou Lun 28 Oct 2024 - 19:51

» Figures fractales
Décodage base64 Emptypar Marc Ven 25 Oct 2024 - 12:18

» Panoramic et Scanette
Décodage base64 Emptypar Yannick Mer 25 Sep 2024 - 22:16

» Editeur d étiquette avec QR évolutif
Décodage base64 Emptypar JL35 Lun 23 Sep 2024 - 22:40

» BUG QR Code DelphiZXingQRCode
Décodage base64 Emptypar Yannick Dim 22 Sep 2024 - 11:40

» fichier.exe
Décodage base64 Emptypar leclode Ven 20 Sep 2024 - 19:02

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Novembre 2024
LunMarMerJeuVenSamDim
    123
45678910
11121314151617
18192021222324
252627282930 
CalendrierCalendrier
Le deal à ne pas rater :
Boutique Nike : -25% dès 50€ sur TOUT le site Nike avec le code ...
Voir le deal

 

 Décodage base64

Aller en bas 
+2
Jicehel
Nardo26
6 participants
Aller à la page : 1, 2  Suivant
AuteurMessage
Nardo26

Nardo26


Nombre de messages : 2294
Age : 56
Localisation : Valence
Date d'inscription : 02/07/2010

Décodage base64 Empty
MessageSujet: Décodage base64   Décodage base64 EmptyVen 24 Aoû 2012 - 11:56

Bonjour à tous !
Suite au programme de ygeronimi, je me suis amusé à faire un bout de code permettant de décoder un fichier en base64...
essayez-le ! Wink

Code:
' --------------------------------------------
' DECODAGE D'UN FICHIER EN BASE 64
' Auteur : Nardo
' --------------------------------------------
DIM code64$ : code64$="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"
DIM ligne
DIM i,j,k,v
DIM Src$,a$,b$
DIM Largeur,Hauteur
DIM CRLF$:CRLF$=CHR$(10)+CHR$(13)
DATA "Qk3mCAAAAAAAADYEAAAoAAAALgAAABkAAAABAAgAAAAAALAEAAAAAAAAAAAAAAABAAAAAAAAwsLC"
DATA "AL2jbgBycnIA9fX1AOnp6QCUlJQAtZplAJlzKQDg4OAA7u7uAPn5+QC8vLwAk2gSANHR0QBWVlYA"
DATA "8fHxAM3NzQDW0ckAhYWFAObm5gDr49MAqqqqANXV1QDd3d0A2NjYADMzMwCph0UA9/PtAKqPWwDI"
DATA "sYUAsJFTANXEowC1tLEA5dzKAMfHxwBCQkIApoI5AN3QuACvrq0An5+fAO/q4ADy8vIAnYVVAKib"
DATA "gQDDq3sAzLePAKuppgCMXQAAxq6AANG+mQDg1L4AnXs5AMvLygDz8u8Aq6acANvNsADPw64ApJJv"
DATA "AOPj4wDHvakA7+7rAPHt5ACZfUcA////AAAAAAChGAAAwAAWAABE3ABHyVgAdU8AAGlydgB+AHIA"
DATA "Oo4NAAkqfgAgADMAAAAAABsJAgAAAAAAAAAAAAAAAABcOkQAcmVQAFxvcwBuYVAAYXJvAGNpbQBy"
DATA "U1wAYlxjAAA0NgBsb2YAcmVkAGliXwBnLmcAAGZpABQAAAAAEvMAAAAAAOrQAAAoABIAfjrCADMJ"
DATA "KgAAIAAAAgAAAAAbCQAAAAAAAAEAANkAAAB+OYsAPxCIAOpkfgAYABIAABLrADrCPADB6X4AiH46"
DATA "AACdQgAYazAA7tAAAAAAnQAAAAAAAAABAAAAAADoAAAAABLqAAAAAQDvgAAAjwASAH48BAA6wfAA"
DATA "//9+AOn//wB+OsEAO+VtAAkqfgAgADMAAAAAABsJAgAAAAAAmAAAAAAS6wA7COYAQoh+ACAAnQAA"
DATA "AAAAGwkCAAAAAAABAAAAAAAAAAAAIAAAAAAAkwAAAHyFwQAS6/AAAAQAAPQAAAAAEuwAtXsLAOvw"
DATA "WABOABIAfjqXAAAAIAADAAAA+H/+AP///wAAAAAAl04AAER+OgBQXDoAc3JlAFBcbwBvbmEAbWFy"
DATA "AFxjaQBjclMANmJcAGZcNABkbG8AX3JlAGdpYgBpZy4AOgBmAAAAfgDEAAAAABLrADqQzgDuIH4A"
DATA "AACdAAAAAABFbPsA6/wAAE4AEgAAAAIAAAMIAO9kAAAwABIAAEVjAAAAJAAAAAAATgAAAAAAAgAA"
DATA "AwgAAAQAAFAAAAAAcgAAdADqAAAAAAAiAgIAAAACAAAC9QAD2QAAEAAAAAAAAwAAAAAAoRgAAGAA"
DATA "FgAAFS8AEuzYAAEgAABEAAAAAADsABUAAADqIAAANQASAHyA0gAS7HwA6QAAAMB8kQB8kgEA////"
DATA "AAG7/wBvfJIAfICaABUAAAAACAAAgAAUAHyAmgAAAGYAAGYAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
DATA "AAAAAAIOfAAACAIAVAAAAAAS7AACDlEA9EgCAMAAEgB8g5oAgJqIALoEfAAqAEQAADMJAD8/Pz8/"
DATA "Pz8/Pz8/Pz8/Pz8/PygdJAwvLy8kLCE/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8AAD8/Pz8/Pz8/Pz8/Pz8/"
DATA "Pz8hBgwqKy4VFRUrKgceMj8/Pz8/Pz8/Pz8/Pz8/Pz8AAD8/Pz8/Pz8/Pz8/Pz8/PzAMOQsAEA0W"
DATA "Fg0iCyY5DAE/Pz8/Pz8/Pz8/Pz8/Pz8AAD8/Pz8/Pz8/Pz8/Pz8/AQcgNA0WFhYWFg0NDSILLjMB"
DATA "Cj8/Pz8/Pz8/Pz8/Pz8AAD8/Pz8/Pz8/Pz8/Pz8BMwAQFhYNDQ0NEDQiAAAiACY+AT8/Pz8/Pz8/"
DATA "Pz8/Pz8AAD8/Pz8/Pz8/Pz8/Px8HNA0WDQ00NCIAAAsLCyYADSImBx0/Pz8/Pz8/Pz8/Pz8AAD8/"
DATA "Pz8/Pz8/Pz8/PyQ7FhgNNAAAAAsgBQIOGSMAEBYANgwbPz8/Pz8/Pz8/Pz8AAD8/Pz8/Pz8/Pz8/"
DATA "HxoXFxgQACcSDiMZDhIVDRkLEBYNCyowPz8/Pz8/Pz8/Pz8AAD8/Pz8/Pz8/Pz8/JDgXFwUOGQ4C"
DATA "JyIICAgICCMmEBgYEC4MPz8/Pz8/Pz8/Pz8AAD8/Pz8/Pz8/Pz8bDDoIOicCOjo6Ojo6Ojo6Og4n"
DATA "NBgXGAAHIT8/Pz8/Pz8/Pz8AAD8/Pz8/Pz8/Pz83GgQTEzojCxMTExMTExMTEwISEBgXFzQqLT8/"
DATA "Pz8/Pz8/Pz8AAD8/Pz8/Pz8/Pz8xBjwEBAQuAgQEBAQEBAQEBCcCNBc6CA05AT8/Pz8/Pz8/Pz8A"
DATA "AD8/Pz8/Pz8/Pz8tAQ8JCQkTIw0JCQQEBAQEBAsODRc6OhgBBj8/Pz8/Pz8/Pz8AAD8/Pz8/Pz8/"
DATA "Pz8xBikJCQkJBRIPCQkJCQkJCRcZFhcTBBcrAT8/Pz8/Pz8/Pz8AAD8/Pz8/Pz8/Pz8lGgMPDw8P"
DATA "ExkIDw8PDw8PDw8ZEAgEBBccLT8/Pz8/Pz8/Pz8AAD8/Pz8/Pz8/Pz8bDCkpDw8PDwUSAwMDAwMD"
DATA "AwMOIAQJCRczIT8/Pz8/Pz8/Pz8AAD8/Pz8/Pz8/Pz8/JCUDDw8PDxMZBAMDAwMDAwMOCwkPCREM"
DATA "Pz8/Pz8/Pz8/Pz8AAD8/Pz8/Pz8/Pz8/Hx4DKQ8PDw8SBQoKCgoKCicCBA8PCQYwPz8/Pz8/Pz8/"
DATA "Pz8AAD8/Pz8/Pz8/Pz8/PyQyAw8PDw8XGQMKCgoNFRkNDw8PIQwbPz8/Pz8/Pz8/Pz8AAD8/Pz8/"
DATA "Pz8/Pz8/Px8HPQMPDw8PAicCDhkOAgsPDw88Gh0/Pz8/Pz8/Pz8/Pz8AAD8/Pz8/Pz8/Pz8/Pz8s"
DATA "GjUDDw8PFhIVEA8PDw8PKSkGAT8/Pz8/Pz8/Pz8/Pz8AAD8/Pz8/Pz8/Pz8/Pz8/ASQoAykPDw8P"
DATA "Dw8PDw8pPB4BCj8/Pz8/Pz8/Pz8/Pz8AAD8/Pz8/Pz8/Pz8/Pz8/PzAMLQMDAykPDw8pAwMfBwE/"
DATA "Pz8/Pz8/Pz8/Pz8/Pz8AAD8/Pz8/Pz8/Pz8/Pz8/Pz8UAQwsJTUDAwMyLAceMj8/Pz8/Pz8/Pz8/"
DATA "Pz8/Pz8AAD8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz0dGgwvLy8kLBQ/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8AAA=="
DATA "@"

' on remplie la dlist qui servira pour le décodage
DLIST 2 : READ a$
WHILE a$<>"@"
  ITEM_ADD 2,a$
  READ a$
END_WHILE

' On ouvre le fichier temporaire de destination
FILEBIN_OPEN_WRITE 30,DIR_CURRENT$+"\resultat.bmp"
' puis on décode chaque ligne de notre Dlist
FOR ligne=1 TO COUNT(2)
  Src$ = ITEM_READ$(2,ligne)
  FOR i = 1 TO LEN(Src$) STEP 4
    ' on récupère un groupe de 4 caractères
    a$ = MID$(Src$,i,4)
    ' puis on calcule sa valeur qui correspondra à 3 octets (24 bits)
    v = 0
    FOR j = 1 TO 4
      ' en sachant que A=0, B=1, C=2, etc...
      ' on détermine la valeur du caractère
      k = INSTR(code64$, MID$(a$, j, 1)) - 1
      ' puis on l'ajoute à la valeur en cours
      ' chaque caractère correspond à 6 bits
      v = (v * POWER(2,6)) + k : ' décalage de 6 bits vers la gauche + nouvelle valeur
    NEXT j
    ' v contient 3 octets
    b$=HEX$(v):WHILE LEN(b$)<6:b$="0"+b$:END_WHILE
    filebin_hexa_write 30,3,b$
  NEXT i
NEXT ligne
FILEBIN_CLOSE 30
PICTURE 20
FILE_LOAD 20,DIR_CURRENT$+"\resultat.bmp"
FILE_DELETE DIR_CURRENT$+"\resultat.bmp" : ' suppression du fichier temporaire
MESSAGE "Décodage terminé !"+CRLF$+"L'image apparait dans le formulaire..."
TERMINATE

J'ai pas encore ecrit le programme de codage mais je m'y attelle dès que j'en trouverai le temps... Wink
Revenir en haut Aller en bas
http://nardo26.lescigales.org
Jicehel

Jicehel


Nombre de messages : 5947
Age : 52
Localisation : 77500
Date d'inscription : 18/04/2011

Décodage base64 Empty
MessageSujet: Re: Décodage base64   Décodage base64 EmptyVen 24 Aoû 2012 - 12:55

J'essayerais ça ce soir, mais je suis content que tu es de nouveau envie de programmer des trucs Wink
Tu dois pouvoir coder aussi directement une image par ce biais sans avoir à passer par un fichier résultat, mais directement en le mettant dans une picture
Revenir en haut Aller en bas
Yannick




Nombre de messages : 8635
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

Décodage base64 Empty
MessageSujet: re   Décodage base64 EmptyVen 24 Aoû 2012 - 13:08

Manque plus que l'encodeur et ce sera parfait... Laughing
Revenir en haut Aller en bas
Nardo26

Nardo26


Nombre de messages : 2294
Age : 56
Localisation : Valence
Date d'inscription : 02/07/2010

Décodage base64 Empty
MessageSujet: Re: Décodage base64   Décodage base64 EmptyVen 24 Aoû 2012 - 16:09

Jicehel a écrit:
J'essayerais ça ce soir, mais je suis content que tu es de nouveau envie de programmer des trucs Wink
Tu dois pouvoir coder aussi directement une image par ce biais sans avoir à passer par un fichier résultat, mais directement en le mettant dans une picture

L'envie de programmer ne m'a jamais quitté, c'est seulement que je ne programme pas uniquement qu'en Panoramic et que certains projets me prennent pas mal de temps...

Quand au bout de code, c'est juste un exemple et on peut certainement l'adapter en fct des besoins...

Voici le petit prog de codage :
Code:
' --------------------------------------------
' CODAGE D'UN FICHIER EN BASE 64
' Auteur : Nardo
' --------------------------------------------
DIM code64$ : code64$="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"
DIM b64File$,b64Path$
DIM ligne$
DIM i,j,k,l,v,v1
DIM Src$,a$,b$
OPEN_DIALOG 1
FILTER 1,"images|*.*"
b64File$=FILE_NAME$(1)
b64Path$=FILE_EXTRACT_PATH$(b64File$)
b64File$=FILE_EXTRACT_NAME$(b64File$)
DIM cur:cur=1
DIM Size,nbpack
IF FILE_EXISTS(b64Path$+b64File$)=1
  FILEBIN_OPEN_READ 40,b64Path$+b64File$
  FILE_OPEN_WRITE 50,b64Path$+"resultat.bas"
  Size = FILEBIN_SIZE(40)
  l=0 : nbpack=0
  ligne$="DATA "+CHR$(34)
  FOR i=1 TO Size STEP 3
    v = 0
    IF i+3 > Size THEN l=Size-i+1:EXIT_FOR
    FOR j=1 TO 3 : FILEBIN_READ 40,k : v = (v*256)+ k : NEXT j
    ' v contient 3 octets
    a$=""
    FOR j=1 TO 4 : ' 4 groupe de 6 bits
      v1=BIN_AND(v,POWER(2,6)-1)
      a$=MID$(code64$,v1+1,1)+a$
      v=int(v/64)
    NEXT j
    ligne$=ligne$+a$:nbpack=nbpack+1
    if nbpack=20
      nbpack=0
      file_writeln 50,ligne$+CHR$(34)
      ligne$="DATA "+CHR$(34)
    end_if
  NEXT i
  v=0
  ' cas particulier : la taille du fichier n'est pas un multiple de 3
  ' il reste L octets
  IF l<>0
    FOR i=1 TO l : FILEBIN_READ 40,k : v=(v*256)+k : NEXT i
    WHILE l<3: v = v*256 :l=l+1: END_WHILE
    a$=""
    FOR i=1 TO L+1
      v1=BIN_AND(v,POWER(2,6)-1)
      if  i <= l+1 THEN a$=MID$(code64$,v1+1,1)+a$
      v = int(v / 64)
    NEXT i
    file_writeln 50, "DATA "+CHR$(34)+LEFT$(a$,3-((24-(L*8))/8))+CHR$(34)
  END_IF
  FILE_CLOSE 50
  FILEBIN_CLOSE 40
  MESSAGE "Codage terminé !"
END_IF
TERMINATE

C'est pas très propre, il demande à être améliorer...
c'est fonctionnel mais il me reste à vérifier l'intégrité des 2 ou 3 derniers octets en fin de fichier lors du codage...
c'est pas dramatique, ça marche quand même, mais c'est à contrôler... Wink

Revenir en haut Aller en bas
http://nardo26.lescigales.org
Jicehel

Jicehel


Nombre de messages : 5947
Age : 52
Localisation : 77500
Date d'inscription : 18/04/2011

Décodage base64 Empty
MessageSujet: Re: Décodage base64   Décodage base64 EmptyVen 24 Aoû 2012 - 16:37

Peut-on directement lire les données d'une image en mémoire pour en stocker les valeurs ? (Les valeurs hexa ?)
L'idée, en clair, ce serait tout comme on a un 2D_IMAGE_COPY N,X1,Y1,X2,Y2 d'avoir l'équivalent d'un
STR$=2D_IMAGE_READ N,X1,Y1,X2,Y2 qui récupérerais sous forme de chaine hexa, les valeurs du carré (X1,Y1),(X2,Y2) de l'image ou du picture N
Est-ce que c'est déjà à ce jour réalisable en construisant une fonction ou en utilisant la DLL de Klaus ?
Revenir en haut Aller en bas
Yannick




Nombre de messages : 8635
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

Décodage base64 Empty
MessageSujet: re   Décodage base64 EmptyVen 24 Aoû 2012 - 18:48

C'est une base de travail intéressante pour des gens comme moi
qui apprennent par le décorticage de code.
Pour coloramic, je suis parti d'une fonction écrite par jicehel ( une douzaine de ligne)
pour changer les pixels 0,0,0 en 0,0,1 de façon à ne pas avoir
dégradation d'image sur un sprite à cause de la transparence.
Et tu vois ou j'en suis arrivé... Laughing
Il n'y a pas de petit code, il y a des codes astuce ( c'est comme çà que je les appelle )
et çà sert bien pour apprendre.

Merci pour ce code Nardo26...

Revenir en haut Aller en bas
bignono

bignono


Nombre de messages : 1127
Age : 67
Localisation : Val de Marne
Date d'inscription : 13/11/2011

Décodage base64 Empty
MessageSujet: Re: Décodage base64   Décodage base64 EmptyVen 24 Aoû 2012 - 18:56

Bonjour Nardo,
Je viens d'essayer tes 2 programmes d'encodage et décodage d'une image en data.
C'est très bien, mais si on choisit une image jpg, au réencodage elle ne marche pas, à moins que,... je viens de comprendre! Du moins je crois, je ferai l'essai demain, il faut mettre resultat.jpg et pas resultat.bmp...
J'ai tenté de coder une image de 256x256, une trentaine de secondes en gros et au décodage, la même chose, mais j'avais pas le même dessin à l'arrivée: j'ai pris l'image de texture de poisson1.bmp dans mon aquarium3d...
N'empêche que ce genre de petit programme pour encoder une image en data serait bien pratique pour réduire le nombre de fichier dans nos application comme l'a si bien expliqué Ygeronimi dans ce post ou un autre je crois,...
Bon je tombe de sommeil et de fatigue, à demain... Wink
Revenir en haut Aller en bas
Yannick




Nombre de messages : 8635
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

Décodage base64 Empty
MessageSujet: re   Décodage base64 EmptyVen 24 Aoû 2012 - 19:44

je vais finir par choper le vice du chrono avec vous,
je vais chronométrer le temps de codage de mon D.I.C
( Data Image Creator )... Laughing Laughing Laughing
Revenir en haut Aller en bas
Yannick




Nombre de messages : 8635
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

Décodage base64 Empty
MessageSujet: re   Décodage base64 EmptyVen 24 Aoû 2012 - 23:49

10 secondes 25 pour D.I.C sur un bmp de 225x225
Revenir en haut Aller en bas
Nardo26

Nardo26


Nombre de messages : 2294
Age : 56
Localisation : Valence
Date d'inscription : 02/07/2010

Décodage base64 Empty
MessageSujet: Re: Décodage base64   Décodage base64 EmptyJeu 30 Aoû 2012 - 21:57

Bonsoir,

J'ai corrigé les routines de codage et de décodage...

Vous trouverez les sources commentées sur mydrive.ch.

Username : panoramic@nardo26
Password : panoramic123

Dans le répertoire: Panoramic\Src\Codage binaire64

prog.bas -> utilitaire de codage/décodage

Les deux autres fichiers (code.bas, decode.bas) sont des exemples d'intégration.

PS : Ce système de codage n'a d'intérêt que pour des petites images...

Pour de plus amples infos, je vous conseille l'article dans wikipedia -> voir ici Wink
Revenir en haut Aller en bas
http://nardo26.lescigales.org
Yannick




Nombre de messages : 8635
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

Décodage base64 Empty
MessageSujet: re   Décodage base64 EmptyVen 31 Aoû 2012 - 0:08

Je vais voir çà de plus près... Laughing

mais je n'avais pas vu de bug dans tes codes... scratch
Revenir en haut Aller en bas
Nardo26

Nardo26


Nombre de messages : 2294
Age : 56
Localisation : Valence
Date d'inscription : 02/07/2010

Décodage base64 Empty
MessageSujet: Re: Décodage base64   Décodage base64 EmptyVen 31 Aoû 2012 - 7:04

Pourtant il y en avait un :
Lors du codage, on prends des groupes de 3 octets (3 * 8 bits) que l'on recode en groupe de 4* 6 bits...
Pourquoi 6 bits ?
Parce que cela nous fait 64 combinaisons possibles (2^6 - 1 => 0 à 63), donc 64 caractères affichables (voir code64$ dans le source).

Si la taille du fichier n'est pas un multiple de 3 on se retrouve avec 1 ou 2 octets en fin de fichier à coder à part.
Dans le codage base64, il existe un caractère (=) qui signale un groupe incomplet.
C'est ce cas qui était mal traité... Wink

C'était pas gênant pour un bitmap (bmp) mais dans le cas d'un jpg celui-ci se termine obligatoirement par "FFD9" en hexa et ces 2 octets n'étaient pas restitués correctement lors du décryptage...donc le fichier était corrompu...

Pour la petite histoire:
Le codage en base64 est notamment utilisé dans les feuilles de style de certaines page web. pour modifier l'apparence des puces dans une liste ordonnée par exemple, cela évite de charger une floppé de petits fichiers bitmap lors du chargement de la page par le navigateur. Donc en employant cette méthode on diminue le nombre de requête HTTP, on obtient ainsi un gain de temps...

il existe aussi une autre méthode pour diminuer le nombre de requête : les sprites. (on regroupe plusieurs images en une seule)
C'est ce système qui est utilisé par exemple sur ce forum (voir les petites flèches jaunes) et également Google (voir ici )mais là c'est un autre sujet Wink




Revenir en haut Aller en bas
http://nardo26.lescigales.org
Nardo26

Nardo26


Nombre de messages : 2294
Age : 56
Localisation : Valence
Date d'inscription : 02/07/2010

Décodage base64 Empty
MessageSujet: Re: Décodage base64   Décodage base64 EmptyLun 3 Sep 2012 - 20:15

Bonsoir,

Actuellement, le programme permet de sauvegarder une image dans plusieurs types de format.

Comment faire pour informer l'utilisateur des différents format existants ?

Actuellement j'utilise un SAVE_DIALOG avec un FILTER = "Fichier image|*.JPG;*.BMP;*.GIF;*.PNG;*.TIF;*.ICO;*.EMF;*.WMF"
Mais "fichier image" est trop vague à mon gout...

Faire un SAVE_DIALOG personnalisé avec une sorte de popup proposant les différents formats ?
(cette solution parait la plus appropriée, mais faire une usine à gaz pour juste cette fonction me rebute...)

J'aimerais avoir votre avis...


Pour info: je met régulièrement à jour le source de mon prog sur mydrive.ch donc pour ceux qui veulent essayer, n’hésitez pas à y faire un tour... Wink


Revenir en haut Aller en bas
http://nardo26.lescigales.org
Yannick




Nombre de messages : 8635
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

Décodage base64 Empty
MessageSujet: re   Décodage base64 EmptyLun 3 Sep 2012 - 20:49

à la place de "Fichier Image|....." tu peux remettre les formats "jpg,bmp,.....|"
Revenir en haut Aller en bas
Klaus

Klaus


Nombre de messages : 12331
Age : 75
Localisation : Ile de France
Date d'inscription : 29/12/2009

Décodage base64 Empty
MessageSujet: Re: Décodage base64   Décodage base64 EmptyLun 3 Sep 2012 - 20:50

Propose un cumbo ou un option_container avec des options à cliquer pour choisir le format. Puis, après file_name$, tu vérifies l'extension. S'il n'y en a pas, tu ajoutes l'extension choisie. Si ce n'est pas la bonne extension, tu fais un message...
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Nardo26

Nardo26


Nombre de messages : 2294
Age : 56
Localisation : Valence
Date d'inscription : 02/07/2010

Décodage base64 Empty
MessageSujet: Re: Décodage base64   Décodage base64 EmptyLun 3 Sep 2012 - 20:51

@Ygeronimi : Oui j'y ai penser mais ça va faire un truc à rallonge... pas terrible...
Neutral
L'idée de Klaus est interessante... je vais voir ce que je peux faire... merci !
Revenir en haut Aller en bas
http://nardo26.lescigales.org
Yannick




Nombre de messages : 8635
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

Décodage base64 Empty
MessageSujet: re   Décodage base64 EmptyLun 3 Sep 2012 - 20:54

C'est une bonne solution aussi et tu peux gérer le format avant qu'il crée un bug si il n'est pas admit.
Revenir en haut Aller en bas
Nardo26

Nardo26


Nombre de messages : 2294
Age : 56
Localisation : Valence
Date d'inscription : 02/07/2010

Décodage base64 Empty
MessageSujet: Re: Décodage base64   Décodage base64 EmptyLun 3 Sep 2012 - 22:57

Ça c'est déjà fait ygeronimi...Décodage base64 07
Je pense avoir prévu tous les cas... Smile
Le seul cas qu'il reste, mais là je ne peux pas faire grand chose c'est un plantage de la DLL elle-même...
Revenir en haut Aller en bas
http://nardo26.lescigales.org
Nardo26

Nardo26


Nombre de messages : 2294
Age : 56
Localisation : Valence
Date d'inscription : 02/07/2010

Décodage base64 Empty
MessageSujet: Re: Décodage base64   Décodage base64 EmptyMar 4 Sep 2012 - 1:17

Nouvelle version 1.2.1 (voir sur mon webdav) avec une boite de dialogue spécifique pour la sauvegarde des fichiers images...
C'est pas très propre, j'ai un peu bousiller ma belle organisation du prog mais ça fonctionne !... Décodage base64 10
C'est juste pour me faire une idée...
Je pense par la suite re-coder la chose plus proprement... Décodage base64 07
Revenir en haut Aller en bas
http://nardo26.lescigales.org
Yannick




Nombre de messages : 8635
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

Décodage base64 Empty
MessageSujet: re   Décodage base64 EmptyMar 4 Sep 2012 - 11:54

@ Nardo,

Je viens de d'essayer ton programme, pas tout mais un petit morceau.

J'ai rajouté :
Code:
if dir_exists(dir_current$+"\Dll")=0 then dir_make dir_current$+"\Dll"
histoire de savoir où coller KGF.dll et j'ai fait la modif pour la retrouver.

Je t'invite à deux choses que je fais maintenant pour éviter de chercher les fichiers

D$=dir_current$

puis :

if dir_exists(D$+ "\nom du dossier des fichiers nécessaires")= 0 then dir_make D$+ "\nom du dossier des fichiers nécessaires"
D_......$=D$+ "\nom du dossier des fichiers nécessaires"

if dir_exists( D$+"\nom du Dossier de sortie des fichiers créés")=0 then di_make D$+"\nom du Dossier de sortie des fichiers créés"
D_output$=D$+"\nom du Dossier de sortie des fichiers créés"


et avec çà, je sais où sont les fichiers de fonctionnement et les fichiers que je créé.... Laughing
et je peux distinguer un fichier input d'un output ( surtout pour les images Laughing )
Revenir en haut Aller en bas
Yannick




Nombre de messages : 8635
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

Décodage base64 Empty
MessageSujet: re   Décodage base64 EmptyMar 4 Sep 2012 - 12:04

J'avais oublié....BRAVO !!!

C'est un programme qui fonctionne bien et qui peut être pratique pour récupérer des images dans des fichiers sources.
Revenir en haut Aller en bas
Nardo26

Nardo26


Nombre de messages : 2294
Age : 56
Localisation : Valence
Date d'inscription : 02/07/2010

Décodage base64 Empty
MessageSujet: Re: Décodage base64   Décodage base64 EmptyMar 4 Sep 2012 - 13:04

Merci ygeronimi Smile

Pour le chemin d'accès à la DLL, je part du principe qu'au final, pour l'utilisateur lambda, la DLL se trouvera dans le même répertoire que l'exécutable.
C'est volontairement que je fige en "dur" le chemin pendant le développement (et en 1ere ligne pour pouvoir facilement le mettre en commentaire si besoin). Au final, il n'y aura pas de chemin...

Quand à l'utilisation de DIR_CURRENT$, j'ai essayé, j'ai testé et j'ai abandonné... Wink

Quand tu ouvres dans l'éditeur plusieurs sources (qui font des OPEN_DIALOG) et que tu les exécutes/fermes à tout de rôle ou que tu sauvegardes tes sources à partir de l'éditeur, bien malin de savoir à un moment donné, ce que contient véritablement DIR_CURRENT$
-> Pas forcément le répertoire du source en cours d’exécution...

Par exemple ton utilitaire sur la conso de gaz/electricité, j'ai retrouvé des dossiers de partout sur mon disque dur ! Very Happy

Dans le cas de mon programme, la création d'un répertoire "Dll" ne m'apporte rien si celui-ci ne contient pas la DLL... Wink
Donc c'est à l'utilisateur de s'assurer que la DLL se trouve dans le même répertoire que l’exécutable.
Revenir en haut Aller en bas
http://nardo26.lescigales.org
Yannick




Nombre de messages : 8635
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

Décodage base64 Empty
MessageSujet: RE   Décodage base64 EmptyMar 4 Sep 2012 - 13:20

Je l'ai fait car panoramic ne retrouvait pas la dll que j'avais mise dans le dossier du source
puisque que tu déclares un dossier au début "path$"

Edit : au début j'utilisais "dir_current$" à chaque fois seul et effectivement il y avait une dispersion des fichiers Rolling Eyes
maintenant je déclare une variable qui contient l'adresse du dossier source dès l'ouverture et après je me sers de la variable
et plus de "dir_current$" et fini la dispersion des fichiers... Laughing


Edit 2: tu remarqueras que dans mes prog les plus récent, j'initialise dans des variables toutes les adresses dès le départ...
Revenir en haut Aller en bas
Nardo26

Nardo26


Nombre de messages : 2294
Age : 56
Localisation : Valence
Date d'inscription : 02/07/2010

Décodage base64 Empty
MessageSujet: Re: Décodage base64   Décodage base64 EmptyMar 4 Sep 2012 - 14:00

Même en faisant comme cela, tu n'es pas à l'abri....

Prenons un exemple:
- Crées 2 répertoires : C:\ex1 et C:\ex2

- Dans chaque répertoire tu rajoute un fichier qui contient cette ligne:
Code:
MESSAGE DIR_CURRENT$

Donc on a :
C:\ex1\exemple1.bas
C:\ex2\exemple2.bas

- Tu fermes les 2 fichiers
- puis tu les recharge dans l'éditeur Panoramic en respectant cet ordre :
C:\ex1\exemple1.bas .
C:\ex2\exemple2.bas .

- Lance l'exécution des 2 programmes à tour de rôle...

Quelque-soit le programme que tu lances, ils vont te renvoyer tous les deux "C:\ex2"
pourtant exemple1.bas ne se trouve pas dans C:\ex2.

DIR_CURRENT$ te renvoi le dernier répertoire ouvert et c'est normal ! Wink

Ce qu'il faut retenir c'est qu'il ne faut pas partir du principe que cette variable correspond systématiquement au répertoire du source exécuté.
c'est faux ! Wink

Si par malheur, exemple1.bas crée des répertoires tu vas les retrouver dans le répertoire du dernier fichier ouvert par panoramic (que ce soit l'editeur ou suite à un OPEN_DIALOG/SAVE_DIALOG d'un autre programme)

DIR_CURRENT$ porte bien son nom. Si on voulait appliquer ton raisonnement, il faudrait avoir en sa possession une variable DIR_APPLICATION$. et encore que doit-elle contenir dans le cas d'un nouveau programme pas encore sauvegardé ?...


Dernière édition par Nardo26 le Mar 4 Sep 2012 - 14:09, édité 1 fois
Revenir en haut Aller en bas
http://nardo26.lescigales.org
Jicehel

Jicehel


Nombre de messages : 5947
Age : 52
Localisation : 77500
Date d'inscription : 18/04/2011

Décodage base64 Empty
MessageSujet: Re: Décodage base64   Décodage base64 EmptyMar 4 Sep 2012 - 14:08

En fait, il faudrait une variable DIR_SOURCE$ qui correspondrait au répertoire au se trouve le fichier .BAS (ou .EXE une fois compilé) qu'en pensez vous ?
Revenir en haut Aller en bas
Contenu sponsorisé





Décodage base64 Empty
MessageSujet: Re: Décodage base64   Décodage base64 Empty

Revenir en haut Aller en bas
 
Décodage base64
Revenir en haut 
Page 1 sur 2Aller à la page : 1, 2  Suivant
 Sujets similaires
-
» Coder un texte en base64
» Codeur / décodeur Base64 et Base64URL

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: Vos sources, vos utilitaires à partager-
Sauter vers: