FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  MembresMembres  Connexion  
Derniers sujets
» Logiciel de planétarium.
Adressage des pixels d'un picture Emptypar Pedro Aujourd'hui à 8:08

» Un autre pense-bête...
Adressage des pixels d'un picture Emptypar Froggy One Jeu 21 Nov 2024 - 15:54

» Récupération du contenu d'une page html.
Adressage des pixels d'un picture Emptypar Pedro Sam 16 Nov 2024 - 14:04

» Décompilation
Adressage des pixels d'un picture Emptypar JL35 Mar 12 Nov 2024 - 19:57

» Un album photos comme du temps des grands-mères
Adressage des pixels d'un picture Emptypar jjn4 Mar 12 Nov 2024 - 17:23

» traitement d'une feuille excel
Adressage des pixels d'un picture Emptypar jjn4 Jeu 7 Nov 2024 - 3:52

» Aide-mémoire mensuel
Adressage des pixels d'un picture Emptypar jjn4 Lun 4 Nov 2024 - 18:56

» Des incomprèhension avec Timer
Adressage des pixels d'un picture Emptypar Klaus Mer 30 Oct 2024 - 18:26

» KGF_dll - nouvelles versions
Adressage des pixels d'un picture Emptypar Klaus Mar 29 Oct 2024 - 17:58

» instructions panoramic
Adressage des pixels d'un picture Emptypar maelilou Lun 28 Oct 2024 - 19:51

» Figures fractales
Adressage des pixels d'un picture Emptypar Marc Ven 25 Oct 2024 - 12:18

» Panoramic et Scanette
Adressage des pixels d'un picture Emptypar Yannick Mer 25 Sep 2024 - 22:16

» Editeur d étiquette avec QR évolutif
Adressage des pixels d'un picture Emptypar JL35 Lun 23 Sep 2024 - 22:40

» BUG QR Code DelphiZXingQRCode
Adressage des pixels d'un picture Emptypar Yannick Dim 22 Sep 2024 - 11:40

» fichier.exe
Adressage des pixels d'un picture Emptypar leclode Ven 20 Sep 2024 - 19:02

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Novembre 2024
LunMarMerJeuVenSamDim
    123
45678910
11121314151617
18192021222324
252627282930 
CalendrierCalendrier
-17%
Le deal à ne pas rater :
(Black Friday) Apple watch Apple SE GPS + Cellular 44mm (plusieurs ...
249 € 299 €
Voir le deal

 

 Adressage des pixels d'un picture

Aller en bas 
4 participants
AuteurMessage
JL35




Nombre de messages : 7112
Localisation : 77
Date d'inscription : 29/11/2007

Adressage des pixels d'un picture Empty
MessageSujet: Adressage des pixels d'un picture   Adressage des pixels d'un picture EmptyDim 8 Mai 2016 - 14:36

Je suis en train de bricoler sur le format bmp (simple) et ico (plus tarabiscoté).
Quelque chose me chiffonne dans l'adressage des pixels dans Panoramic.
Un exemple:
Code:
DIM w,h
w = 20: h = 20
PICTURE 1: WIDTH 1,w: HEIGHT 1,h: COLOR 1,0,0,128
2D_TARGET_IS 1: 2D_PEN_COLOR 255,0,0
2D_LINE 0,0,w-1,h-1
2D_FILL_OFF: 2D_RECTANGLE 0,0,w-1,h-1
Zoom(1,0,0,w,h,30): ' zoom x30, pour voir
Terminate
' ==============================================================================
SUB Zoom(pict%,x%,y%,w%,h%,z%)
' Zoom x z% de la zone du picture p% en x%,y%, dimensions w%,h%
  IF LABEL("Ex") = 0 THEN LABEL Ex
  DIM_LOCAL n2d%,ff%,f%,p%,i%,j%,xp%,yp%,r%,g%,b%
  ff% = 0: f% = 900: p% = f%+1: ' variable ff% définie dans le programme appelant
  n2d% = NUMBER_2D_TARGET
  FORM f%: BORDER_SMALL f%: WIDTH f%,w%*z%+16: HEIGHT f%,h%*z%+35: ON_CLOSE f%,Ex
  PICTURE p%: PARENT p%,f%: FULL_SPACE p%
  2D_TARGET_IS p%
  yp% = 0
  FOR j% = y% TO y%+h%-1
      xp% = 0
      FOR i% = x% TO x%+w%-1
          r% = COLOR_PIXEL_RED(pict%,i%,j%): g% = COLOR_PIXEL_GREEN(pict%,i%,j%)
          b% = COLOR_PIXEL_BLUE(pict%,i%,j%)
          2D_PEN_COLOR r%,g%,b%: 2D_FILL_COLOR r%,g%,b%
          2D_RECTANGLE xp%,yp%,xp%+z%-1,yp%+z%-1
          xp% = xp%+z%
      NEXT i%
      2D_PEN_COLOR 128,128,128: 2D_LINE 0,yp%,WIDTH(p%),yp%
      yp% = yp%+z%
  NEXT j%
  FOR xp% = 0 TO WIDTH(p%) STEP z%: 2D_LINE xp%,0,xp%,HEIGHT(p%): NEXT xp%
  2D_TARGET_IS n2d%
  CAPTION f%," ZOOM x "+STR$(z%)
  WHILE ff% = 0: PAUSE 300: TO_FOREGROUND f%: END_WHILE: DELETE f%: EXIT_SUB
Ex:
  ff% = 1
RETURN
END_SUB
' ==============================================================================
C'est un Picture carré tout bête, de 20x20 pixels. Et une fonction zoom pour voir le résultat plus en détail.
Normalement les adresses des pixels devraient aller du pixel 0 au pixel 19 (20 pixels en tout).

Eh bien je m'aperçois que dans la fonction
2D_LINE x1,y1,x2,y2: ' tracé d'une ligne entre x1,y1 et x2,y2, la ligne s'arrête en x2-1 et y2-1.
Le point d'arrivée n'est pas compris dans le trait.
De même pour la fonction:
2D_RECTANGLE x1,y1,x2,y2, le rectangle est tracé de x1 à x2-1 et y1 à y2-1
Ça perturbe un peu ma logique...

Si je veux tracer ici une ligne ou un rectangle qui couvre le Picture, il faut aller de 0,0 à 20,20 (au lieu de 19,19), ça ne me paraît pas normal.

Idem pour le 2D_IMAGE_COPY x1,y1,x2,y2 qui copie la zone x1 à x2-1 et y1 à y2-1
Code:
DIM w,h
w = 20: h = 20
PICTURE 1: WIDTH 1,w: HEIGHT 1,h: COLOR 1,0,0,128
2D_TARGET_IS 1: 2D_FILL_OFF
IMAGE 2
2D_PEN_COLOR 255,0,0: 2D_RECTANGLE 0,0,5,5
2D_IMAGE_COPY 2,0,0,4,4
2D_IMAGE_PASTE 2,10,10
Zoom(1,0,0,w,h,20): ' zoom x20, pour voir
Terminate
Revenir en haut Aller en bas
silverman

silverman


Nombre de messages : 970
Age : 52
Localisation : Picardie
Date d'inscription : 18/03/2015

Adressage des pixels d'un picture Empty
MessageSujet: Re: Adressage des pixels d'un picture   Adressage des pixels d'un picture EmptyDim 8 Mai 2016 - 16:38

J’avais déjà constaté ça et j’en ai conclu que le point d’arrivée des commandes de tracé est EXCLU, et aussi que jack a EXCLU cette information du fichier d’aide Sad
Revenir en haut Aller en bas
JL35




Nombre de messages : 7112
Localisation : 77
Date d'inscription : 29/11/2007

Adressage des pixels d'un picture Empty
MessageSujet: Re: Adressage des pixels d'un picture   Adressage des pixels d'un picture EmptyDim 8 Mai 2016 - 16:46

C'est bien dommage, parce que ce n'est pas logique, et pour moi c'est un bug, pas forcément très gênant, mais il faut bien en tenir compte quand on travaille au pixel près ! une droite, c'est du point de départ au point d'arrivée tous deux inclus.

Merci en tout cas silverman de m'avoir rassuré, je me sens moins seul.
Revenir en haut Aller en bas
papydall

papydall


Nombre de messages : 7017
Age : 74
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

Adressage des pixels d'un picture Empty
MessageSujet: Re: Adressage des pixels d'un picture   Adressage des pixels d'un picture EmptyDim 8 Mai 2016 - 17:19

En 1961, j’ai appris le théorème suivant : Un segment de droite est une portion de droite limitée par deux points de cette droite.
Je me rappelle que j’ai fait la remarque à mon professeur de math que cette phrase était trop lourde : répétition de droite trois fois.
Sa réponse était : en mathématiques, il faut définir les choses sans ambiguïté.
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Jean Claude

Jean Claude


Nombre de messages : 5950
Age : 70
Localisation : 83 Var
Date d'inscription : 07/05/2009

Adressage des pixels d'un picture Empty
MessageSujet: Re: Adressage des pixels d'un picture   Adressage des pixels d'un picture EmptyDim 8 Mai 2016 - 17:55

Salut à tous,

@JL35,

Ton code fait appel à une procédure, sans END Exclamation Question

C'est curieux ça, non ?. Very Happy

A+
Revenir en haut Aller en bas
JL35




Nombre de messages : 7112
Localisation : 77
Date d'inscription : 29/11/2007

Adressage des pixels d'un picture Empty
MessageSujet: Re: Adressage des pixels d'un picture   Adressage des pixels d'un picture EmptyDim 8 Mai 2016 - 18:04

Il n'y a pas de END mais il y a un TERMINATE qui termine tout !
Tu trouves ça choquant ?

On va dans la procédure pendant la phase de mise en place des objets (donc avant le End théorique), et au retour de la procédure ce End n'est plus nécessaire puisqu'on clôt le programme, on n'attend plus rien de l'utilisateur.

Le End serait nécessaire si on attendait des actions de l'utilisateur, ce qui n'est pas le cas ici, c'est une démo à sens unique.


Dernière édition par JL35 le Dim 8 Mai 2016 - 18:10, édité 1 fois
Revenir en haut Aller en bas
papydall

papydall


Nombre de messages : 7017
Age : 74
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

Adressage des pixels d'un picture Empty
MessageSujet: Re: Adressage des pixels d'un picture   Adressage des pixels d'un picture EmptyDim 8 Mai 2016 - 18:09

@Jean Claude
Tu n’as pas vu le TERMINATE qui remplace le END ?
Seulement ce TERMINATE je le déteste  affraid  affraid  affraid
TERMINATE = PLANTAGE
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Jean Claude

Jean Claude


Nombre de messages : 5950
Age : 70
Localisation : 83 Var
Date d'inscription : 07/05/2009

Adressage des pixels d'un picture Empty
MessageSujet: Re: Adressage des pixels d'un picture   Adressage des pixels d'un picture EmptyDim 8 Mai 2016 - 18:31

Admettons !

Pourquoi utiliser TERMINATE, qui bug, à la place de END qui lui est irréprochable.
Si tu mets un END à la place de TERMINATE, il n'y a pas de plantage à la sortie.

A+
Revenir en haut Aller en bas
papydall

papydall


Nombre de messages : 7017
Age : 74
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

Adressage des pixels d'un picture Empty
MessageSujet: Re: Adressage des pixels d'un picture   Adressage des pixels d'un picture EmptyDim 8 Mai 2016 - 19:58

C'est bien ce que je dis. tongue
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
JL35




Nombre de messages : 7112
Localisation : 77
Date d'inscription : 29/11/2007

Adressage des pixels d'un picture Empty
MessageSujet: Re: Adressage des pixels d'un picture   Adressage des pixels d'un picture EmptyDim 8 Mai 2016 - 20:34

Le Terminate ferme le programme, ce que ne fait pas le End.
Et chez moi il ne plante pas, je suis revenu à la version précédente de l'éditeur à cause de ça.

Mais bon, c'est un détail par rapport au sujet, le code est court et à usage unique, chacun peut mettre un end à la place du terminate.
Revenir en haut Aller en bas
silverman

silverman


Nombre de messages : 970
Age : 52
Localisation : Picardie
Date d'inscription : 18/03/2015

Adressage des pixels d'un picture Empty
MessageSujet: Re: Adressage des pixels d'un picture   Adressage des pixels d'un picture EmptyLun 9 Mai 2016 - 13:04

@JL35
c'est dommage d'être revenu en arrière, la dernière version de travail fonctionne bien hormis le souci du 'terminate', mais ce pb est facile à contourner:

Code:
'
' remplacement de 'terminate' pour eviter le bug:

sub close_form(window)
   dll_on "user32" : dim_local null%
   null%=dll_call1("DestroyWindow",handle(window))   :' libere les resources memoires
   if window=0
      null%=dll_call1("PostQuitMessage",0)           :' indique au systeme que c'est la fin du programme
   end_if
   dll_off
end_sub


' ou a partir de panoramic0927i2 et +, on peut utiliser cette autre sub:

sub close_form(window)
 dim_local n
   n=0
   repeat
      n=n+1
   until library$(n)="_" or lower$(library$(n))="user32"
   if lower$(library$(n))<>"user32" then library n,"user32"
   '
   command "free_resources","DestroyWindow",n,"I","stdcall"   :' libere les resources memoires
   command "quit_form","PostQuitMessage",n,"I","stdcall"      :' indique au systeme que c'est la fin du programme
   '
   free_resources handle(window)
   if window=0 then quit_form 0   :' 0=code de sortie
end_sub
Revenir en haut Aller en bas
JL35




Nombre de messages : 7112
Localisation : 77
Date d'inscription : 29/11/2007

Adressage des pixels d'un picture Empty
MessageSujet: Re: Adressage des pixels d'un picture   Adressage des pixels d'un picture EmptyLun 9 Mai 2016 - 13:41

Je sais bien silverman qu'il y a des palliatifs au terminate défectueux, mais bon
- pour le moment je n'utilise pas les dernières modifs de l'éditeur, donc je ne suis pas très motivé.
- j'ai depuis longtemps sur le bureau un petit batch qui ferme (fermement) Panoramic.exe pour tous les cas où ça tourne en rond ou autres, j'ai juste à cliquer dessus, et c'est radical.

Le .Bat sert à fermer impérativement une tâche quelconque en cours d'exécution:
Code:
@echo off
Taskkill.exe /F /IM %1 /T
enregistré dans C:\BAT\ sous le nom Kill.bat
Appelé depuis le bureau par:
Code:
C:\BAT\Kill.bat Panoramic.exe

Ça ferme toutes les sessions de panoramic.exe qui restent actives, on ne sait pas toujours pourquoi (j'ai aussi sur le bureau un petit utilitaire qui m'affiche tous les programmes actifs au moment du clic, avec possibilité de supprimer certains).

Il me suffirait, dans mes programmes actuels, de mettre à la place de TERMINATE:
Code:
EXECUTE "cmd.exe /c C:\BAT\Kill.bat Panoramic.exe"
et ça ferme sans discuter.

Mais je garde quand même sous le coude ta sub qui ne nécessite pas de ressource externe.

PS Pour le taskkill de panoramic.exe, je pense que c'est ce que fait d'une façon ou d'une autre l'option 'Stop' dans le menu de Panoramic_editor.
Revenir en haut Aller en bas
Contenu sponsorisé





Adressage des pixels d'un picture Empty
MessageSujet: Re: Adressage des pixels d'un picture   Adressage des pixels d'un picture Empty

Revenir en haut Aller en bas
 
Adressage des pixels d'un picture
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Problème en adressage de strings par ADR() ?
» Picture
» Taille en pixels d'une police fixe
» TextLen: longueur d'une chaîne en pixels
» Comment calculer l'épaisseur en pixels d'une fenêtre

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: Présentation et bavardage-
Sauter vers: