Re: ZOOM Souris
Publié : jeu. 14/juil./2011 10:46
.............
Code : Tout sélectionner
Color = *PixelArray\Pixel((py**PixelArray\Width)+px)
Code : Tout sélectionner
DrawAlphaClippedImage(@PixelArray, 0, 0, ImageWidth(image)/4, ImageHeight(image)/4, 0, 0, 400, 400, 255)
Code : Tout sélectionner
DrawingMode(#PB_2DDrawing_AlphaBlend)
DrawAlphaClippedImage(@PixelArray, 0, 0, ImageWidth(image)/4, ImageHeight(image)/4, 0, 0, 400, 400, 255)
sur une image avec alpha en 128*128, si je fais :Atomo a écrit :Il faut que la zone que tu clip à l'aide des paramètres x1, y1, w1, h1 soit dans les limites de l'image source.
Code : Tout sélectionner
DrawAlphaClippedImage(@PixelArray, 0, 0, 64,64, 0, 0, 400, 400, 255)
en ajoutant DrawingMode(#PB_2DDrawing_AlphaBlend) je n'ai plus le soucisConcernant le problème de transparence, tu peux me passer l'image qui pose problème pour voir ce que je peux faire ?
windows xp sp2, en 32 bitsAtomo a écrit :Ca devrait effectivement fonctionner, tu es sur un système 32 ou 64bits ?
Code : Tout sélectionner
;###############################################
;######## kernadec Zoom genre Photoshop ##
;######## juillet 2011 pb440 et + ##
;###############################################
#Echelle=250
Global Image_X.l,Image_Y.l,imagelg.l,imageht.l,a.l,b.l,mx.l,my.l,clic_delta.l,Zoom.l
imagelg=1200
imageht=1200
Image_X=0-200
Image_Y=0-200
OpenWindow(0,0, 0,600,600, "Zoom genre Photoshop kernadec",#WS_SYSMENU|#PB_Window_ScreenCentered )
CreateImage(1,imagelg,imageht,32) ;image Temporaire
LoadImage(0, "c:\purebasic\examples\sources\data\Geebee2.bmp")
ResizeImage(0,imagelg,imageht,#PB_Image_Smooth)
CopyImage(0,2)
SetActiveWindow(0)
StartDrawing(WindowOutput(0))
DrawImage(ImageID(0),Image_X,Image_Y,imagelg,imageht)
StopDrawing()
Procedure dessin()
; kernadec procedure zoom genre photoshop
StartDrawing(WindowOutput(0))
DrawingMode(1)
Box(0,0,WindowWidth(0),WindowHeight(0),RGB(225,225,225))
DrawingMode(4)
If clic_delta<>0
Zoom=#Echelle*clic_delta
EndIf
If (imagelg+Zoom)<0 Or (imageht+Zoom)<0
CreateImage(1,100,100,32)
ElseIf (imagelg+Zoom)>8000 Or (imageht+Zoom)>8000
CreateImage(1,8000,8000,32)
Else
CreateImage(1,imagelg+Zoom,imageht+Zoom,32) ;image temporaire pour calcul taille
EndIf
Image_X=(Image_X-(WindowWidth(0)/2))-(WindowMouseX(0)-WindowWidth(0)) ;recentrage vue&zoom x souris
Image_Y=(Image_Y-(WindowHeight(0)/2))-(WindowMouseY(0)-WindowHeight(0)) ;recentrage vue&zoom y souris
DrawImage(ImageID(0),Image_X-(Zoom/2),Image_Y-(Zoom/2),ImageWidth(1),ImageHeight(1)) ;affiche image
FreeImage(1)
StopDrawing()
EndProcedure
Repeat
Event= WaitWindowEvent()
Select event
Case #PB_Event_Gadget
Case #WM_LBUTTONDOWN
clic_delta=clic_delta+1
mx=WindowMouseX(0)
my=WindowMouseY(0)
dessin()
Case #WM_RBUTTONDOWN
clic_delta=clic_delta-1
mx=WindowMouseX(0)
my=WindowMouseY(0)
dessin()
Case #WM_MOUSEMOVE
mx=WindowMouseX(0)
my=WindowMouseY(0)
Case #WM_LBUTTONUP
Case #WM_RBUTTONUP
EndSelect
Until Event= #PB_Event_CloseWindow
Code : Tout sélectionner
Color = *PixelsArray\Pixel((py**PixelsArray\Width)+px)