Page 2 sur 4

Re: ZOOM Souris

Publié : jeu. 14/juil./2011 10:46
par Backup
.............

Re: ZOOM Souris

Publié : jeu. 14/juil./2011 10:57
par Atomo
Ca marche exactement comme la fonction DrawAlphaImage() de la lib 2DDrawing.

Re: ZOOM Souris

Publié : jeu. 14/juil./2011 10:57
par Backup
je vois que tu as Reediter ton code
ok je test ;)

Re: ZOOM Souris

Publié : jeu. 14/juil./2011 11:02
par Backup
c'est bon ! :D

Merci pour ton code :)

Re: ZOOM Souris

Publié : jeu. 14/juil./2011 17:06
par blendman
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 :

Code : Tout sélectionner

 Color = *PixelArray\Pixel((py**PixelArray\Width)+px)
Array index out of bounds

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)
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 :

Code : Tout sélectionner

DrawingMode(#PB_2DDrawing_AlphaBlend)
  DrawAlphaClippedImage(@PixelArray, 0, 0, ImageWidth(image)/4, ImageHeight(image)/4, 0, 0, 400, 400, 255)
mais j'ai toujours le preimier bug si je change ImageWidth(image)/4, ImageHeight(image)/4

Re: ZOOM Souris

Publié : jeu. 14/juil./2011 17:21
par Atomo
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 ?

Re: ZOOM Souris

Publié : jeu. 14/juil./2011 21:01
par blendman
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.
sur une image avec alpha en 128*128, si je fais :

Code : Tout sélectionner

DrawAlphaClippedImage(@PixelArray, 0, 0, 64,64, 0, 0, 400, 400, 255) 
j'ai le bug, pourtant ça devrait marcher,non ?

que dois-je faire exactement ?
Concernant le problème de transparence, tu peux me passer l'image qui pose problème pour voir ce que je peux faire ?
en ajoutant DrawingMode(#PB_2DDrawing_AlphaBlend) je n'ai plus le soucis ;)

Re: ZOOM Souris

Publié : jeu. 14/juil./2011 21:15
par Atomo
Ca devrait effectivement fonctionner, tu es sur un système 32 ou 64bits ?

Re: ZOOM Souris

Publié : jeu. 14/juil./2011 21:44
par blendman
Atomo a écrit :Ca devrait effectivement fonctionner, tu es sur un système 32 ou 64bits ?
windows xp sp2, en 32 bits

Re: ZOOM Souris

Publié : dim. 17/juil./2011 16:10
par kernadec
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

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

Publié : lun. 18/juil./2011 17:17
par Atomo
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

Publié : lun. 18/juil./2011 17:33
par blendman
j'ai un bug ligne 34 :

Code : Tout sélectionner

 Color = *PixelsArray\Pixel((py**PixelsArray\Width)+px)
La variable *PixelsArray n'a pas de structure associée

Re: ZOOM Souris

Publié : lun. 18/juil./2011 17:39
par kernadec
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

Re: ZOOM Souris

Publié : lun. 18/juil./2011 18:10
par Atomo
C'est corrigé, désolé.

Re: ZOOM Souris

Publié : lun. 18/juil./2011 18:30
par blendman
Plus de bug, mais un problème à l'affichage ;)

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

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