ZOOM Souris
Re: ZOOM Souris
.............
Dernière modification par Backup le sam. 01/oct./2011 9:28, modifié 1 fois.
Re: ZOOM Souris
Ca marche exactement comme la fonction DrawAlphaImage() de la lib 2DDrawing.
Re: ZOOM Souris
je vois que tu as Reediter ton code
ok je test
ok je test

Re: ZOOM Souris
c'est bon ! 
Merci pour ton code

Merci pour ton code

Re: ZOOM Souris
salut Attomo
ça m'a l'air super intéressant ton code
.
Avec un jpg, ça marche nickel.
Mais avec un png, j'ai 2 petits soucis :
- le canal alpha n'est pas conservé, ne sont conservés que les "extrêmes" (le blanc = 255, et le noir = 0)
- avec un png en 128*128, j'ai une erreur à la ligne :
Array index out of bounds
Par contre, si je mets ça :
je n'ai plus d'erreur, je n'ai l'erreur que pour un w1 et un h1 différent de ce que j'ai mis.
Merci en tout cas pour ce code très intéressant
.
EDIT :
-j'ai corrigé le 2ème soucis en ajoutant :
mais j'ai toujours le preimier bug si je change ImageWidth(image)/4, ImageHeight(image)/4
ça m'a l'air super intéressant ton code

Avec un jpg, ça marche nickel.
Mais avec un png, j'ai 2 petits soucis :
- le canal alpha n'est pas conservé, ne sont conservés que les "extrêmes" (le blanc = 255, et le noir = 0)
- avec un png en 128*128, j'ai une erreur à la ligne :
Code : Tout sélectionner
Color = *PixelArray\Pixel((py**PixelArray\Width)+px)
Par contre, si je mets ça :
Code : Tout sélectionner
DrawAlphaClippedImage(@PixelArray, 0, 0, ImageWidth(image)/4, ImageHeight(image)/4, 0, 0, 400, 400, 255)
Merci en tout cas pour ce code très intéressant

EDIT :
-j'ai corrigé le 2ème soucis en ajoutant :
Code : Tout sélectionner
DrawingMode(#PB_2DDrawing_AlphaBlend)
DrawAlphaClippedImage(@PixelArray, 0, 0, ImageWidth(image)/4, ImageHeight(image)/4, 0, 0, 400, 400, 255)
http://blendman.blogspot.com/
Forum PB fr : http://www.purebasic.fr/french - Forum PB Eng : http://www.purebasic.fr/english
Forum PB fr : http://www.purebasic.fr/french - Forum PB Eng : http://www.purebasic.fr/english
Re: ZOOM Souris
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.
Concernant le problème de transparence, tu peux me passer l'image qui pose problème pour voir ce que je peux faire ?
Concernant le problème de transparence, tu peux me passer l'image qui pose problème pour voir ce que je peux faire ?
Re: ZOOM Souris
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)
que dois-je faire exactement ?
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 ?

http://blendman.blogspot.com/
Forum PB fr : http://www.purebasic.fr/french - Forum PB Eng : http://www.purebasic.fr/english
Forum PB fr : http://www.purebasic.fr/french - Forum PB Eng : http://www.purebasic.fr/english
Re: ZOOM Souris
Ca devrait effectivement fonctionner, tu es sur un système 32 ou 64bits ?
Re: ZOOM Souris
windows xp sp2, en 32 bitsAtomo a écrit :Ca devrait effectivement fonctionner, tu es sur un système 32 ou 64bits ?
http://blendman.blogspot.com/
Forum PB fr : http://www.purebasic.fr/french - Forum PB Eng : http://www.purebasic.fr/english
Forum PB fr : http://www.purebasic.fr/french - Forum PB Eng : http://www.purebasic.fr/english
Re: ZOOM Souris
bonjour
je viens de bricoler un zoom dans le genre Photo-Shop
mais sans mode alpha si quelqu'un a une solution...
je n'ai pas gérer les cas ou l'image trop grande laisse apparaitre du blanc
pour justement la décaler et recouvrir le blanc, pas le temps désolé..
pour le test clic gauche zoom + clic droit zoom -
ajout d'un test de dépassement taille < > image
Cordialement
je viens de bricoler un zoom dans le genre Photo-Shop
mais sans mode alpha si quelqu'un a une solution...
je n'ai pas gérer les cas ou l'image trop grande laisse apparaitre du blanc
pour justement la décaler et recouvrir le blanc, pas le temps désolé..
pour le test clic gauche zoom + clic droit zoom -
ajout d'un test de dépassement taille < > image
Cordialement
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
Re: ZOOM Souris
J'ai mis à jour le code en première page Blendman, tu peux me dire si tu as toujours le bug stp ?
Re: ZOOM Souris
j'ai un bug ligne 34 :
La variable *PixelsArray n'a pas de structure associée
Code : Tout sélectionner
Color = *PixelsArray\Pixel((py**PixelsArray\Width)+px)
http://blendman.blogspot.com/
Forum PB fr : http://www.purebasic.fr/french - Forum PB Eng : http://www.purebasic.fr/english
Forum PB fr : http://www.purebasic.fr/french - Forum PB Eng : http://www.purebasic.fr/english
Re: ZOOM Souris
bonjour
idem
Color = *PixelsArray\Pixel((py**PixelsArray\Width)+px)
ligne 34 la varible n'a pas de 'Structure' associée "pixelArray
ta version précédente n'avait pas cette erreur..
Cordialement
idem
Color = *PixelsArray\Pixel((py**PixelsArray\Width)+px)
ligne 34 la varible n'a pas de 'Structure' associée "pixelArray
ta version précédente n'avait pas cette erreur..
Cordialement
Re: ZOOM Souris
C'est corrigé, désolé.
Re: ZOOM Souris
Plus de bug, mais un problème à l'affichage 
L'image resizée présente des sortes de traits noirs :

A gauche l'image originale, à gauche resizée en 1/8

L'image resizée présente des sortes de traits noirs :

A gauche l'image originale, à gauche resizée en 1/8
http://blendman.blogspot.com/
Forum PB fr : http://www.purebasic.fr/french - Forum PB Eng : http://www.purebasic.fr/english
Forum PB fr : http://www.purebasic.fr/french - Forum PB Eng : http://www.purebasic.fr/english