Page 2 sur 2
Re: Lecteur d'images cryptées
Publié : lun. 04/juil./2011 17:13
par SPH
Franchement, j'avais bien cherché sur le net. Mais bon, meme si ca existe, c'est loin d'etre devenu populaire.
Pour le bug, djes, j'aimerais t'y voir moi derriere le debuggeur a traquer ce bug sans logique. Encore un bug qui entrave le chemin de mes reves...
Re: Lecteur d'images cryptées
Publié : lun. 04/juil./2011 17:48
par SPH
Le bug est ici :
length est d'un certain nombre mais *MemoryID est a zero. Cela veux dire (je crois) que PB n'a pas pu reserver de memoire.
Pourquoi ?
Re: Lecteur d'images cryptées
Publié : lun. 04/juil./2011 18:25
par TazNormand
Quand je teste, j'ai pas de bug d'allocation mémoire.
une idée SPH, aulieu de crypter le fichier image en entier, crypte uniquement les données, gardes les entêtes du format (JFIF...) comme ça le fichier est toujours affichable comme image, mais on ne voit rien que du "brouillage" à l'écran, dans le même style que ce que montre lepiaf31.
Re: Lecteur d'images cryptées
Publié : mer. 06/juil./2011 9:21
par Anonyme2
Salut SPH,
perso je trouve que c'est une bonne idée, je partage assez les remarques de TazNormand.
On est sur un forum d'entraide, alors on essaye d'aider les autres un jour et un autre jour ce sont les autres qui nous aident.
Sur ton problème, si length est non nul et que allocatememory échoue, c'est que la mémoire dispo n'est pas suffisante, c'est ce que dit la doc PB
Si la quantité de mémoire demandée est disponible, *MemoryID contiendra l'adresse de début de la zone mémoire, ou 0 si la zone n'a pu être allouée.
Je te conseille de mettre un test sur *MemoryID en Debug avec l'api microsoft GetLasterror_()
ensuite, j'espère que l'erreur correspondra, tu vas sur le site de MS et tu cherches l'explication avec le numéro d'erreur renvoyé par GetLastError_()
http://msdn.microsoft.com/en-us/library ... 85%29.aspx
As-tu l'erreur lorsque tu fais de nombreuses opérations, car je ne trouve jamais de FreeMemory(*MemoryID) dans ton code.
Il est possible que tu alloues beaucoup de fois de la mémoire sans la désallouer.
je te conseille de mettre ceci
après la ligne
de la procedure Pc_ChargerImage()
un test sur la variable length serait un plus, c'est pas grand chose.
Code : Tout sélectionner
If length
*MemoryID = AllocateMemory(length) ; alloue un bloc mémoire de la taille du fichier
A+
Denis
Re: Lecteur d'images cryptées
Publié : mer. 06/juil./2011 11:53
par SPH
Merci denis pour toutes ces astuces. Je les ai essayé mais tot ou tard, PB buggue...
Si tu veux essayer, choisis 3 clés(onglet 3) puis crypte plusieurs images(onglet 2). Ensuite, en gardant tres cles, surf jusqu'a tes images crypté et regarde les(onglet 1) en appuyant sur PAGE UP et PAGE DOWN. Ca marche un moment puis ca plante sans raison...
Re: Lecteur d'images cryptées
Publié : mer. 06/juil./2011 15:02
par djes
Sans avoir testé plus que ça, je pense que tu écrases de la mémoire là, si la taille de l'image n'est pas un multiple de 8 :
Code : Tout sélectionner
;length/8
For i=0 To length Step 8
q.q=PeekQ(*MemoryID+i)
; Debug q
For u=1 To 3
q!ReadQuad(u)
If Loc(u)>=Leng(u)
FileSeek(u,0)
EndIf
Next
PokeQ(*MemoryID+i,q)
Next
Re: Lecteur d'images cryptées
Publié : mer. 06/juil./2011 15:24
par Anonyme2
Je confirme ce que dit djes.
Avec le purifieur de PB, ça plante sur le PokeQ mais le peekQ doit avoir le même problème.
La boucle For i=0 To length Step 8 doit être fausse car soit on fait :
For i=0 To length - 1
soit on fait
For i=1 To length
Par exemple si tu as 10 octets, c'est soit de 0 à 9, soit de 1 à 10 mais pas de 0 à 10 car là on dépasse de 1 octets la zone
Re: Lecteur d'images cryptées
Publié : mer. 06/juil./2011 16:25
par SPH
Est-ce que ca, ca pourrait arranger les choses :

Re: Lecteur d'images cryptées
Publié : mer. 06/juil./2011 16:36
par djes
Je pense que oui
Re: Lecteur d'images cryptées
Publié : mer. 06/juil./2011 22:30
par anissa
@SPH
Mise à part l'histoire de FreeMemory(), si les extensions (ci-dessous) sont en majuscule, que va t il se passer?
Je sais que c'est enfantin comme remarque mais ce genre de truc est important à ne pas négliger car en cas de faux résultats, il est rare de se retrouver dans des cas pareils...
Code : Tout sélectionner
If ext$=".bmp" Or ext$=".jpg" Or ext$="jpeg" Or ext$=".png" Or ext$=".tga" Or ext$="tiff"
Gosub cry
EndIf
Hum.. et si ext$=".gif" ???
A part ça bon courage SPH
Re: Lecteur d'images cryptées
Publié : jeu. 07/juil./2011 11:08
par Backup
anissa a écrit :@SPH
Mise à part l'histoire de FreeMemory(), si les extensions (ci-dessous) sont en majuscule, que va t il se passer?
Je sais que c'est enfantin comme remarque mais ce genre de truc est important à ne pas négliger car en cas de faux résultats, il est rare de se retrouver dans des cas pareils...
je repond a la place de SPH ...
certe un simple
Code : Tout sélectionner
If lcase(ext$)=".bmp" Or lcase(ext$)=".jpg" Or lcase(ext$)="jpeg" Or lcase(ext$)=".png" Or lcase(ext$)=".tga" Or lcase(ext$)="tiff"
Gosub cry
EndIf
va regler ce probleme mais ... a ta question :
Hum.. et si ext$=".gif" ???
ben c'est simple la condition if n'est pas verifié .. donc, ... on s'en fout

ça reviens a dire que les Gif ne seront pas pris en compte....
mais concernant la relation de Purebasic avec les Gif (hein..KCC ? ) , ben c'est pas grave
Re: Lecteur d'images cryptées
Publié : jeu. 07/juil./2011 12:58
par Kwai chang caine
Dobro a écrit :mais concernant la relation de Purebaic avec les Gif (hein..KCC ? ) , ben c'est pas grave
Et tu trouves ça drole
