Il n'y a pas d'instruction CanvasGadget meme dans la derniere betaThyphoon a écrit :au lieu d'un imageGadget utilise un canvasGadget ! et là tu pourra capturer le clavier ou la souris pour zoomer sur ton image !
Image decrypté sans etre sur le diskdur
Re: Image decrypté sans etre 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
J'aimerais bien dire aussi "sisi" mais il n'apparait pas dans l'aide...Fred a écrit :Sisi
!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
essaye de réinstaller avec l'aide en anglais !SPH a écrit :J'aimerais bien dire aussi "sisi" mais il n'apparait pas dans l'aide...Fred a écrit :Sisi
Re: Image decrypté sans etre sur le diskdur
Est ce que tu pourrais m'indiquer la syntaxe et l'aide en francais ?Thyphoon a écrit :essaye de réinstaller avec l'aide en anglais !SPH a écrit :J'aimerais bien dire aussi "sisi" mais il n'apparait pas dans l'aide...Fred a écrit :Sisi
!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
Toujours installer la version anglaise pour les versions beta, c'est plus prudent coté doc.
je peux pas t'aider, j'attends la version finale pour me mettre à jour.
Pas de projet 3D pour le moment (meme si d'autres commandes sont alléchantes...)
je peux pas t'aider, j'attends la version finale pour me mettre à jour.
Pas de projet 3D pour le moment (meme si d'autres commandes sont alléchantes...)
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Re: Image decrypté sans etre sur le diskdur
Syntax : Result = CanvasGadget(#Gadget, x, y, Width, Height [, Flags])
pour les flags =>
pour les flags =>
- #PB_Canvas_Border : dessine au tour du gadget.
- #PB_Canvas_ClipMouse: Confines the mouse to the gadget while a button is pressed.
- #PB_Canvas_GrabMouse: Reports mouse events even outside of the gadget while a button is pressed (Windows, Linux only)
- #PB_Canvas_Keyboard : Allows the gadget to receive the keyboard focus and keyboard events.
- #PB_Canvas_DrawFocus: Draws a focus rectangle on the gadget if it has keyboard focus.
- #PB_EventType_MouseEnter : The mouse cursor entered the gadget
- #PB_EventType_MouseLeave : The mouse cursor left the gadget
- #PB_EventType_MouseMove : The mouse cursor moved
- #PB_EventType_MouseWheel : The mouse wheel was moved
- #PB_EventType_LeftButtonDown : The left mouse button was pressed
- #PB_EventType_LeftButtonUp : The left mouse button was released
- #PB_EventType_RightButtonDown : The right mouse button was pressed
- #PB_EventType_RightButtonUp : The right mouse button was released
- #PB_EventType_MiddleButtonDown: The middle mouse button was pressed
- #PB_EventType_MiddleButtonUp : The middle mouse button was released
- #PB_EventType_Focus : The gadget gained keyboard focus
- #PB_EventType_LostFocus : The gadget lost keyboard focus
- #PB_EventType_KeyDown : A key was pressed
- #PB_EventType_KeyUp : A key was released
Code : Tout sélectionner
;
; ------------------------------------------------------------
;
; PureBasic - CanvasGadget example file
;
; (c) 2010 - Fantaisie Software
;
; ------------------------------------------------------------
;
Enumeration
#IMAGE_Content ; stores the previous CanvasGadget content while the mouse is down
#IMAGE_Color
#IMAGE_LoadSave
EndEnumeration
Enumeration
#GADGET_Canvas
#GADGET_Color
#GADGET_Brush
#GADGET_Line
#GADGET_Box
#GADGET_Circle
#GADGET_Fill
#GADGET_Clear
#GADGET_Load
#GADGET_Save
EndEnumeration
Global CurrentColor, CurrentMode, StartX, StartY
; Draw the mouse action result depending on the currently selected mode and event type
;
Procedure DrawAction(x, y, EventType)
If StartDrawing(CanvasOutput(#GADGET_Canvas))
Select CurrentMode
Case #GADGET_Brush
If EventType = #PB_EventType_LeftButtonDown Or EventType = #PB_EventType_MouseMove
Circle(x, y, 5, CurrentColor)
EndIf
Case #GADGET_Line
DrawImage(ImageID(#IMAGE_Content), 0, 0)
LineXY(StartX, StartY, x, y, CurrentColor)
Case #GADGET_Box
DrawImage(ImageID(#IMAGE_Content), 0, 0)
Box(StartX, StartY, x-StartX, y-StartY, CurrentColor)
Case #GADGET_Circle
DrawImage(ImageID(#IMAGE_Content), 0, 0)
If x > StartX
rx = x - StartX
Else
rx = StartX - x
EndIf
If y > StartY
ry = y - StartY
Else
ry = StartY - y
EndIf
If GetGadgetAttribute(#GADGET_Canvas, #PB_Canvas_Modifiers) & #PB_Canvas_Control
ry = rx
EndIf
Ellipse(StartX, StartY, rx, ry, CurrentColor)
Case #GADGET_Fill
If EventType = #PB_EventType_LeftButtonDown
FillArea(x, y, -1, CurrentColor)
EndIf
EndSelect
StopDrawing()
EndIf
EndProcedure
UseJPEGImageDecoder()
UseJPEGImageEncoder()
CurrentColor = $000000
CurrentMode = #GADGET_Brush
CreateImage(#IMAGE_Color, 35, 35, 24)
CreateImage(#IMAGE_Content, 380, 380, 24)
If OpenWindow(0, 0, 0, 460, 400, "CanvasGadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
CanvasGadget(#GADGET_Canvas, 10, 10, 380, 380, #PB_Canvas_ClipMouse)
ButtonImageGadget(#GADGET_Color, 400, 10, 50, 50, ImageID(#IMAGE_Color))
ButtonGadget(#GADGET_Brush, 400, 100, 50, 25, "Brush", #PB_Button_Toggle)
ButtonGadget(#GADGET_Line, 400, 130, 50, 25, "Line", #PB_Button_Toggle)
ButtonGadget(#GADGET_Box, 400, 160, 50, 25, "Box", #PB_Button_Toggle)
ButtonGadget(#GADGET_Circle, 400, 190, 50, 25, "Circle", #PB_Button_Toggle)
ButtonGadget(#GADGET_Fill, 400, 220, 50, 25, "Fill", #PB_Button_Toggle)
ButtonGadget(#GADGET_Clear, 400, 280, 50, 25, "Clear")
ButtonGadget(#GADGET_Load, 400, 335, 50, 25, "Load")
ButtonGadget(#GADGET_Save, 400, 365, 50, 25, "Save")
SetGadgetState(#GADGET_Brush, 1)
SetGadgetAttribute(#GADGET_Canvas, #PB_Canvas_Cursor, #PB_Cursor_Cross)
Repeat
Event = WaitWindowEvent()
If Event = #PB_Event_Gadget
Select EventGadget()
Case #GADGET_Canvas
X = GetGadgetAttribute(#GADGET_Canvas, #PB_Canvas_MouseX)
Y = GetGadgetAttribute(#GADGET_Canvas, #PB_Canvas_MouseY)
Type = EventType()
Select EventType()
Case #PB_EventType_LeftButtonDown
;
; This stores the current content of the CanvasGadget in #IMAGE_Content,
; so it can be re-drawn while the mouse moves
;
If StartDrawing(ImageOutput(#IMAGE_Content))
DrawImage(GetGadgetAttribute(#GADGET_Canvas, #PB_Canvas_Image), 0, 0)
StopDrawing()
EndIf
StartX = X
StartY = Y
DrawAction(X, Y, EventType())
Case #PB_EventType_LeftButtonUp
DrawAction(X, Y, EventType())
Case #PB_EventType_MouseMove
If GetGadgetAttribute(#GADGET_Canvas, #PB_Canvas_Buttons) & #PB_Canvas_LeftButton
DrawAction(X, Y, EventType())
EndIf
EndSelect
Case #GADGET_Color
CurrentColor = ColorRequester(CurrentColor)
If StartDrawing(ImageOutput(#IMAGE_Color))
Box(0, 0, 35, 35, CurrentColor)
StopDrawing()
SetGadgetAttribute(#GADGET_Color, #PB_Button_Image, ImageID(#IMAGE_Color))
EndIf
Case #GADGET_Brush, #GADGET_Line, #GADGET_Box, #GADGET_Circle, #GADGET_Fill
EventGadget = EventGadget()
For Gadget = #GADGET_Brush To #GADGET_Fill
If Gadget = EventGadget
SetGadgetState(Gadget, 1)
Else
SetGadgetState(Gadget, 0) ; unset the state of all other gadgets
EndIf
Next Gadget
CurrentMode = EventGadget
Case #GADGET_Clear
If StartDrawing(CanvasOutput(#GADGET_Canvas))
Box(0, 0, 380, 380, $FFFFFF)
StopDrawing()
EndIf
Case #GADGET_Load
File$ = OpenFileRequester("Load Image...", "", "JPEG Images|*.jpeg|All Files|*.*", 0)
If File$
If LoadImage(#IMAGE_LoadSave, File$)
If StartDrawing(CanvasOutput(#GADGET_Canvas))
Box(0, 0, 380, 380, $FFFFFF)
DrawImage(ImageID(#IMAGE_LoadSave), 0, 0)
StopDrawing()
EndIf
FreeImage(#IMAGE_LoadSave)
Else
MessageRequester("CanvasGadget", "Cannot load image: " + File$)
EndIf
EndIf
Case #GADGET_Save
File$ = SaveFileRequester("Save Image...", File$, "JPEG Images|*.jpeg|All Files|*.*", 0)
If File$ And (FileSize(File$) = -1 Or MessageRequester("CanvasGadget", "Overwrite this file? " + File$, #PB_MessageRequester_YesNo) = #PB_MessageRequester_Yes)
If CreateImage(#IMAGE_LoadSave, 380, 380, 24) And StartDrawing(ImageOutput(#IMAGE_LoadSave))
DrawImage(GetGadgetAttribute(#GADGET_Canvas, #PB_Canvas_Image), 0, 0)
StopDrawing()
If SaveImage(#IMAGE_LoadSave, File$, #PB_ImagePlugin_JPEG) = 0
MessageRequester("CanvasGadget", "Cannot save image: " + File$)
EndIf
FreeImage(#IMAGE_LoadSave)
EndIf
EndIf
EndSelect
EndIf
Until Event = #PB_Event_CloseWindow
EndIf
Re: Image decrypté sans etre sur le diskdur
Merci
!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
Réponse tardive en reprenant ton code initial.
Touche + et - pour redimensionner l'image sélectionnée.
Touche + et - pour redimensionner l'image sélectionnée.
Code : Tout sélectionner
UseJPEGImageDecoder()
Enumeration
#Window
#ViewImage
#ImageTmp
#Image
#Kbd_Add
#Kbd_Subtract
EndEnumeration
Zoom.f=1
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(#ImageTmp, *MemoryID, length)
CopyImage(#ImageTmp, #Image)
;Debug resultat
OpenWindow(#Window, 0, 0, ImageWidth(#Image), ImageHeight(#Image), "Resultat de ma selection - "+Str(zoom*100)+" %", #PB_Window_SystemMenu)
ImageGadget(#ViewImage, 0,0,300,200,ImageID(#Image))
AddKeyboardShortcut(#Window, #PB_Shortcut_Add, #Kbd_Add)
AddKeyboardShortcut(#Window, #PB_Shortcut_Subtract, #Kbd_Subtract)
Repeat
Select WaitWindowEvent()
Case #PB_Event_Menu
CopyImage(#ImageTmp, #Image)
Select EventMenu()
Case #Kbd_Add
Zoom=Zoom+0.05
Case #Kbd_Subtract
Zoom=Zoom-0.05
EndSelect
SetWindowTitle(#Window, "Resultat de ma selection - "+Str(zoom*100)+" %")
;Mise à jour de l'image dans son gadget
If Zoom>0.1
ResizeImage(#Image, ImageWidth(#Image)*Zoom, ImageHeight(#Image)*Zoom)
SetGadgetState(#ViewImage, ImageID(#Image))
ResizeWindow(#Window, #PB_Ignore, #PB_Ignore, ImageWidth(#Image), ImageHeight(#Image))
Else
Zoom=0.1
EndIf
Case #PB_Event_CloseWindow
End
EndSelect
ForEverConfiguration : 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
Merci falsam, il n'y a pas de reponse trop tardive. La tienne tombe bien.
!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