imaginez que j'ai un BMP que je crypte pixel par pixel. Puis-je le decrypter a l'ecran sans que cette image decrypté passe sur le diskdur ?
Image decrypté sans etre sur le diskdur
Image decrypté sans etre sur le diskdur
Salut,
imaginez que j'ai un BMP que je crypte pixel par pixel. Puis-je le decrypter a l'ecran sans que cette image decrypté passe sur le diskdur ?
imaginez que j'ai un BMP que je crypte pixel par pixel. Puis-je le decrypter a l'ecran sans que cette image decrypté passe sur le diskdur ?
!i!i!i!i!i!i!i!i!i!
!i!i!i!i!i!i!
!i!i!i!
//// Informations ////
Intel Core i7 4770 64 bits - GTX 650 Ti
Version de PB : 6.12LTS- 64 bits
Re: Image decrypté sans etre sur le diskdur
oui, si vous chiffrer l'image vous pouvez le decypt d'une mémoire tampon
pour les fenêtres, vous pouvez créer une copie dib entre eux l'image de la mémoire, il decrpt et copier revenir à l'image.
yes, if you encrypt the image you can decypt it from a memory buffer
for windows you can create a dib copy them image to memory, decrpt it and copy back to image.
pour les fenêtres, vous pouvez créer une copie dib entre eux l'image de la mémoire, il decrpt et copier revenir à l'image.
yes, if you encrypt the image you can decypt it from a memory buffer
for windows you can create a dib copy them image to memory, decrpt it and copy back to image.
Code : Tout sélectionner
Procedure CopyImageToMemory(ImageNumber, Memory)
Protected TemporaryDC, TemporaryBitmap.BITMAP, TemporaryBitmapInfo.BITMAPINFO
TemporaryDC = CreateDC_("DISPLAY", #Null, #Null, #Null)
GetObject_(ImageID(ImageNumber), SizeOf(BITMAP), TemporaryBitmap.BITMAP)
TemporaryBitmapInfo\bmiHeader\biSize = SizeOf(BITMAPINFOHEADER)
TemporaryBitmapInfo\bmiHeader\biWidth = TemporaryBitmap\bmWidth
TemporaryBitmapInfo\bmiHeader\biHeight = -TemporaryBitmap\bmHeight
TemporaryBitmapInfo\bmiHeader\biPlanes = 1
TemporaryBitmapInfo\bmiHeader\biBitCount = 32
TemporaryBitmapInfo\bmiHeader\biCompression = #BI_RGB
GetDIBits_(TemporaryDC, ImageID(ImageNumber), 0, TemporaryBitmap\bmHeight, Memory, TemporaryBitmapInfo, #DIB_RGB_COLORS)
DeleteDC_(TemporaryDC)
EndProcedure
Procedure CopyMemoryToImage(Memory, ImageNumber)
Protected TemporaryDC, TemporaryBitmap.BITMAP, TemporaryBitmapInfo.BITMAPINFO
TemporaryDC = CreateDC_("DISPLAY", #Null, #Null, #Null)
GetObject_(ImageID(ImageNumber), SizeOf(BITMAP), TemporaryBitmap.BITMAP)
TemporaryBitmapInfo\bmiHeader\biSize = SizeOf(BITMAPINFOHEADER)
TemporaryBitmapInfo\bmiHeader\biWidth = TemporaryBitmap\bmWidth
TemporaryBitmapInfo\bmiHeader\biHeight = -TemporaryBitmap\bmHeight
TemporaryBitmapInfo\bmiHeader\biPlanes = 1
TemporaryBitmapInfo\bmiHeader\biBitCount = 32
TemporaryBitmapInfo\bmiHeader\biCompression = #BI_RGB
SetDIBits_(TemporaryDC, ImageID(ImageNumber), 0, TemporaryBitmap\bmHeight, Memory, TemporaryBitmapInfo, #DIB_RGB_COLORS)
DeleteDC_(TemporaryDC)
EndProcedure
Re: Image decrypté sans etre sur le diskdur
raaaa, je ne le retrouve pas. Je vais l'expliquer, vous allez voir ce que je veux dire :
On reserve un espace memoire de la taille du fichier image. Puis on envoie les donnees de l'image dans la zone memoire. Je cherche ce code (mais je ne pige rien aux pointeurs alors...)
Et par dessus tout ca, ma question est : peut on envoyer la zone memoire dans la zone memoire graphique ?
On reserve un espace memoire de la taille du fichier image. Puis on envoie les donnees de l'image dans la zone memoire. Je cherche ce code (mais je ne pige rien aux pointeurs alors...)
Et par dessus tout ca, ma question est : peut on envoyer la zone memoire dans la zone memoire graphique ?
!i!i!i!i!i!i!i!i!i!
!i!i!i!i!i!i!
!i!i!i!
//// Informations ////
Intel Core i7 4770 64 bits - GTX 650 Ti
Version de PB : 6.12LTS- 64 bits
Re: Image decrypté sans etre sur le diskdur
oui avec un catchsprite() /cathimage() voir docSPH a écrit :raaaa, je ne le retrouve pas. Je vais l'expliquer, vous allez voir ce que je veux dire :
On reserve un espace memoire de la taille du fichier image. Puis on envoie les donnees de l'image dans la zone memoire. Je cherche ce code (mais je ne pige rien aux pointeurs alors...)
Et par dessus tout ca, ma question est : peut on envoyer la zone memoire dans la zone memoire graphique ?
Je te laisse chercher avec les commandes suivante tu devrais pouvoir faire ce que tu veux
ReadFile()
AllocateMemory()
AESDecoder(); ou autre si tu as ton propre encodage
ReadData()
CatchImage()
freeMemory()
Re: Image decrypté sans etre sur le diskdur
Merci, je regarde ca... 
!i!i!i!i!i!i!i!i!i!
!i!i!i!i!i!i!
!i!i!i!
//// Informations ////
Intel Core i7 4770 64 bits - GTX 650 Ti
Version de PB : 6.12LTS- 64 bits
Re: Image decrypté sans etre sur le diskdur
Voyez ce code et vous comprendrez ce que je veux faire : je veux Catcher une image JPG depuis l'emplacement memoire que j'ai reservé. L'image est lue dedans mais je ne catch rien. Pkoi ?
Code : Tout sélectionner
UseJPEGImageDecoder()
file$ = OpenFileRequester("Sélectionnez un fichier","","JPG (.jpg)|*.jpg|All files (*.*)|*.*",0)
If file$
If ReadFile(0, file$)
length = Lof(0) ; Lit la taille en octets du fichier
*MemoryID = AllocateMemory(length) ; alloue un bloc mémoire de la taille du fichier
If *MemoryID
bytes = ReadData(0, *MemoryID, length) ; Lit les données du fichier et les place dans le bloc mémoire
EndIf
CloseFile(0)
EndIf
EndIf
Resultat = CatchImage(0, *MemoryID, length)
Debug result
!i!i!i!i!i!i!i!i!i!
!i!i!i!i!i!i!
!i!i!i!
//// Informations ////
Intel Core i7 4770 64 bits - GTX 650 Ti
Version de PB : 6.12LTS- 64 bits
- falsam
- Messages : 7334
- Inscription : dim. 22/août/2010 15:24
- Localisation : IDF (Yvelines)
- Contact :
Re: Image decrypté sans etre sur le diskdur
Resul at ?SPH a écrit : Debug result
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Re: Image decrypté sans etre sur le diskdur
M****. Merci de m'avoir eclairé. J'y etais alors ?falsam a écrit :Resul at ?SPH a écrit : Debug result
!i!i!i!i!i!i!i!i!i!
!i!i!i!i!i!i!
!i!i!i!
//// Informations ////
Intel Core i7 4770 64 bits - GTX 650 Ti
Version de PB : 6.12LTS- 64 bits
- falsam
- Messages : 7334
- Inscription : dim. 22/août/2010 15:24
- Localisation : IDF (Yvelines)
- Contact :
Re: Image decrypté sans etre sur le diskdur
D'aprés ce code ça fonctionneSPH a écrit :M****. Merci de m'avoir eclairé. J'y etais alors ?
Code : Tout sélectionner
UseJPEGImageDecoder()
file$ = OpenFileRequester("Sélectionnez un fichier","","JPG (.jpg)|*.jpg|All files (*.*)|*.*",0)
If file$
If ReadFile(0, file$)
length = Lof(0) ; Lit la taille en octets du fichier
*MemoryID = AllocateMemory(length) ; alloue un bloc mémoire de la taille du fichier
If *MemoryID
bytes = ReadData(0, *MemoryID, length) ; Lit les données du fichier et les place dans le bloc mémoire
EndIf
CloseFile(0)
EndIf
EndIf
Resultat = CatchImage(0, *MemoryID, length)
Debug resultat
OpenWindow(0, 0, 0, 500, 500, "Resultat de ma selection", #PB_Window_SystemMenu)
ImageGadget(#PB_Any, 10,20,300,400,ImageID(0))
Repeat
Select WaitWindowEvent()
Case #PB_Event_CloseWindow
End
EndSelect
ForEver
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Re: Image decrypté sans etre sur le diskdur
Juste un truc : pourquoi ImageGadget(#PB_Any, 0,0,300,200,ImageID(0)) ne force pas l'image a 300*200 ?
Code : Tout sélectionner
UseJPEGImageDecoder()
file$ = OpenFileRequester("Sélectionnez un fichier","","JPG (.jpg)|*.jpg|All files (*.*)|*.*",0)
If file$
If ReadFile(0, file$)
length = Lof(0) ; Lit la taille en octets du fichier
*MemoryID = AllocateMemory(length) ; alloue un bloc mémoire de la taille du fichier
If *MemoryID
bytes = ReadData(0, *MemoryID, length) ; Lit les données du fichier et les place dans le bloc mémoire
EndIf
CloseFile(0)
EndIf
EndIf
Resultat = CatchImage(0, *MemoryID, length)
;Debug resultat
OpenWindow(0, 0, 0, ImageWidth(0), ImageHeight(0), "Resultat de ma selection", #PB_Window_SystemMenu)
ImageGadget(#PB_Any, 0,0,300,200,ImageID(0))
Repeat
Select WaitWindowEvent()
Case #PB_Event_CloseWindow
End
EndSelect
ForEver!i!i!i!i!i!i!i!i!i!
!i!i!i!i!i!i!
!i!i!i!
//// Informations ////
Intel Core i7 4770 64 bits - GTX 650 Ti
Version de PB : 6.12LTS- 64 bits
- falsam
- Messages : 7334
- Inscription : dim. 22/août/2010 15:24
- Localisation : IDF (Yvelines)
- Contact :
Re: Image decrypté sans etre sur le diskdur
En fait les dimensions de ImageGadget ne servent à rien !!
Doc Pure Basic a écrit : La hauteur et la largeur du gadget s'ajustent automatiquement à la taille de l'image (les paramètres Largeur et Hauteur sont donc actuellement sans effet).
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
- falsam
- Messages : 7334
- Inscription : dim. 22/août/2010 15:24
- Localisation : IDF (Yvelines)
- Contact :
Re: Image decrypté sans etre sur le diskdur
Remplace :SPH a écrit :Juste un truc : pourquoi ImageGadget(#PB_Any, 0,0,300,200,ImageID(0)) ne force pas l'image a 300*200 ?
ImageGadget(#PB_Any, 0,0,300,200,ImageID(0))
par
ImageGadget(#PB_Any, 10,20,0,0,ResizeImage(0, 300, 200))
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Re: Image decrypté sans etre sur le diskdur
Code : Tout sélectionner
UseJPEGImageDecoder()
file$ = OpenFileRequester("Sélectionnez un fichier","","JPG (.jpg)|*.jpg|All files (*.*)|*.*",0)
If file$
If ReadFile(0, file$)
length = Lof(0) ; Lit la taille en octets du fichier
*MemoryID = AllocateMemory(length) ; alloue un bloc mémoire de la taille du fichier
If *MemoryID
bytes = ReadData(0, *MemoryID, length) ; Lit les données du fichier et les place dans le bloc mémoire
EndIf
CloseFile(0)
EndIf
EndIf
Resultat = CatchImage(0, *MemoryID, length)
;Debug resultat
OpenWindow(0, 0, 0, ImageWidth(0), ImageHeight(0), "Resultat de ma selection", #PB_Window_SystemMenu)
ImageGadget(#PB_Any, 0,0,300,200,ImageID(0))
Repeat
Select WaitWindowEvent()
Case #PB_Event_CloseWindow
End
EndSelect
ForEverJe veux dire, dans :
Code : Tout sélectionner
Repeat
Select WaitWindowEvent()
Case #PB_Event_CloseWindow
End
EndSelect
ForEver(car je n'ai JAMAIS utilisé de windows et ses instructions)
!i!i!i!i!i!i!i!i!i!
!i!i!i!i!i!i!
!i!i!i!
//// Informations ////
Intel Core i7 4770 64 bits - GTX 650 Ti
Version de PB : 6.12LTS- 64 bits
Re: Image decrypté sans etre sur le diskdur
Personne please ? 
!i!i!i!i!i!i!i!i!i!
!i!i!i!i!i!i!
!i!i!i!
//// Informations ////
Intel Core i7 4770 64 bits - GTX 650 Ti
Version de PB : 6.12LTS- 64 bits
Re: Image decrypté sans etre sur le diskdur
au lieu d'un imageGadget utilise un canvasGadget ! et là tu pourra capturer le clavier ou la souris pour zoomer sur ton image !