Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2776 connectés 

  FORUM HardWare.fr
  Programmation
  Delphi/Pascal

  canvas resize

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

canvas resize

n°200596
hhf
Posté le 23-08-2002 à 14:48:19  profilanswer
 

Salut, j'ai un petit probleme avec le canvas de TImage, pas de prob pour dessiner dedans, j'use d'une proc "dessin" qui dessine en fonction de la taille du canvas, MonImage.Canvas.width et Height. Si l'option strech est à true quand je change la taille de l'image, le dessin est redimentionné, normal, mais se dernier est moins net, puisque le stretch fais une interpolation sur le dessin.
alors je veux forcer le trace du dessin. Qd je fais ca, l'image est redessinner bcp plus grde que l'image PKoi ?[img]

mood
Publicité
Posté le 23-08-2002 à 14:48:19  profilanswer
 

n°200603
taureau
Posté le 23-08-2002 à 14:52:38  profilanswer
 

c pas super clair tout ça... :D  
 
t'as pas un exemple de ton code ?

n°200696
hhf
Posté le 23-08-2002 à 16:06:42  profilanswer
 

je veux bien, mais ca donne pas le defaut du result, mais en voici un bout...

Code :
  1. with MonImage do
  2. begin
  3. // on efface
  4. Canvas.Pen.Style:=psSolid;
  5.    Canvas.Brush.Color := clwhite;
  6.     Canvas.Pen.Color := clwhite;
  7.     Canvas.Rectangle(0,0,Width-1,Height-1);
  8. // trace les droites horizontales
  9. Canvas.Pen.Color := clMoneyGreen;
  10. Canvas.Pen.Style:=psDashDot;
  11. Canvas.Pen.Width:=1;
  12. for i:= 0 to 7 do
  13. begin
  14.        y:=trunc((Height-1)-(i*Height/7));
  15.         Canvas.MoveTo(0,y);
  16.     Canvas.LineTo(Width,y);
  17. end;
  18. end;


Voila, c'est pour dessiner une grille pour faire des courbes, la ya que les lignes horizontales. C'est peu t'etre ma facon d'effacer qui va pas, ou de recuperer la taille de l'image?
la j'ai mis stretch = true, si je le met à false, qd j'agrandit l'image qui a align = alclient, le dessin reste de la taille d'origine.
Donc si je resize et que je rapelle cette proc, l'image subit un zoom violent... bizare.
Ce que je veux, c'est que qd on rezise la fenetre, le trace soit redessiné pour gagné en precision.


Message édité par hhf le 23-08-2002 à 19:39:52
n°200867
[SDF]Poire
Vive Grumly
Posté le 23-08-2002 à 18:13:44  profilanswer
 

hhf a écrit a écrit :

je veux bien, mais ca donne pas le defaut du result, mais en voici un bout...

Code :
  1. with MonImage do
  2. begin
  3. // on efface et on trace l'abcisse et l'ordonnée
  4. Canvas.Pen.Style:=psSolid;
  5.    Canvas.Brush.Color := clwhite;
  6.     Canvas.Pen.Color := clwhite;
  7.     Canvas.Rectangle(0,0,Width-1,Height-1);
  8. // trace les droites horizontales
  9. Canvas.Pen.Color := clMoneyGreen;
  10. Canvas.Pen.Style:=psDashDot;
  11. Canvas.Pen.Width:=1;
  12. for i:= 0 to 7 do
  13. begin
  14.        y:=trunc((Height-1)-(i*Height/7));
  15.         Canvas.MoveTo(0,y);
  16.     Canvas.LineTo(Width,y);
  17. end;
  18. end;


Voila, c'est pour dessiner une grille pour faire des courbes, la ya que les lignes horizontales. C'est peu t'etre ma facon d'effacer qui va pas, ou de recuperer la taille de l'image?
la j'ai mis stretch = true, si je le met à false, qd j'agrandit l'image qui a align = alclient, le dessin reste de la taille d'origine.
Donc si je resize et que je rapelle cette proc, l'image subit un zoom violent... bizare.
Ce que je veux, c'est que qd on rezise la fenetre, le trace soit redessiné pour gagné en precision.




 :pt1cable: Rien compris...
C ptet que je rentre de vacances :p


---------------
Des bons sites pour Delphi? http://forum.hardware.fr/forum2.php3?post=16838&cat=10 -- informaticien -- http://www.z0rglub.com/phpwebgallery/ -- Delphi :love:
n°200932
hhf
Posté le 23-08-2002 à 19:40:31  profilanswer
 

qu'est que tu comprend pas, je veux bien expliquer...

n°200942
taureau
Posté le 23-08-2002 à 20:08:18  profilanswer
 

je ne vois pas pourquoi tu t'occupes de stretch puisque tu dessines toi meme...donc laisse le à false, et branche toi plutot sur l'évenement OnResize du conteneur de ton TImage et là tu pourras placer la routine qui va tracer tes courbes en utilisant les bonnes dimensions

n°200951
hhf
Posté le 23-08-2002 à 20:33:28  profilanswer
 

je suis bien d'accord avec toi, mais si je met stretch = false, lorsque j'agrandi l'image, le canvas n'est pas resizé, il reste de la mm taille, mais ma proc à bien detecté les nouvelle taille de l'image, donc on a l'impression qu'il y a un zoom de fait.

n°200952
hhf
Posté le 23-08-2002 à 20:35:10  profilanswer
 

J'ai utilisé un TImage, pour pouvoir dessiner dedans via son TCanvas, mais ya peu t'etre plus logique pour faire du dessin??

n°200955
taureau
Posté le 23-08-2002 à 20:45:05  profilanswer
 

tu peux utiliser directement un TBitmap que tu crés à la volée...

n°200976
hhf
Posté le 23-08-2002 à 21:35:50  profilanswer
 

ben oui mais il n'y a pas que mon graph ds la form, alors un TBitmap ca pose prob, ya plus la proprieté align, je pourrais m'en passer si il y avais les proprieté top et left sur le TBitmap. Et je suis pas sur que ca resolve mon PB, car c'est ca le prob, le Timage est resizé, mais pas le canvas. Ou alors j'ai pas tous compris...
Merci de votre aide.

mood
Publicité
Posté le 23-08-2002 à 21:35:50  profilanswer
 

n°200985
taureau
Posté le 23-08-2002 à 21:42:37  profilanswer
 

tu dessines dans le canvas du tbitmap que tu cré avec la taille de ton TImage puis tu l'assignes dans TImage.picture pour l'afficher (n'oublie pas de libérer le tbitmap)


Message édité par taureau le 23-08-2002 à 21:48:44
n°200988
taureau
Posté le 23-08-2002 à 21:45:31  profilanswer
 

c normal que lorsque le timage est redimmensionné la taille réelle du son contenu ne le soit pas...donc tu dois l'ajuster en conséquence

n°201000
hhf
Posté le 23-08-2002 à 22:01:07  profilanswer
 

ben moi je veux bien, mais yas pas de Canvas.width ou Canvas.Height.... alors comment resizé le canvas en fct de la taille du Timage parent ?

n°201004
taureau
Posté le 23-08-2002 à 22:05:06  profilanswer
 

tu donnes la taille à ton tbitmap...
 
mabitmap := TBitmap.create;
try
 mabitmap.width := ...
 ...
 mabitmap.canvas...
 ...
 monimage.picture.assign(mabitmap);
finally
 mabitmap.free;
end;
 
 

n°201007
hhf
Posté le 23-08-2002 à 22:08:09  profilanswer
 

Oui effectivement ca doit marché merci, je try ca de suite.

n°201013
[SDF]Poire
Vive Grumly
Posté le 23-08-2002 à 22:13:52  profilanswer
 

Taureau a écrit a écrit :

tu donnes la taille à ton tbitmap...
 
mabitmap := TBitmap.create;
try
 mabitmap.width := ...
 ...
 mabitmap.canvas...
 ...
 monimage.picture.assign(mabitmap);
finally
 mabitmap.free;
end;
 
 
 




T en vacances ?
:hello:


---------------
Des bons sites pour Delphi? http://forum.hardware.fr/forum2.php3?post=16838&cat=10 -- informaticien -- http://www.z0rglub.com/phpwebgallery/ -- Delphi :love:
n°201018
hhf
Posté le 23-08-2002 à 22:16:44  profilanswer
 

YES, THAT'S WORK
THANKS SO MUTCH
Merci taureau

n°201021
taureau
Posté le 23-08-2002 à 22:18:09  profilanswer
 

de rien hhf
 
poire non mais bon là je traine avant d'aller au lit  :D

n°201028
[SDF]Poire
Vive Grumly
Posté le 23-08-2002 à 22:21:30  profilanswer
 

Taureau a écrit a écrit :

de rien hhf
 
poire non mais bon là je traine avant d'aller au lit  :D  




Enfin bravo pour le courage  :jap:  
Tu mérites une médaille
 :hello:


---------------
Des bons sites pour Delphi? http://forum.hardware.fr/forum2.php3?post=16838&cat=10 -- informaticien -- http://www.z0rglub.com/phpwebgallery/ -- Delphi :love:
n°201032
taureau
Posté le 23-08-2002 à 22:23:47  profilanswer
 

mouais...mais juste en chocolat alors car c'était pas si terrible  :D

n°201036
[SDF]Poire
Vive Grumly
Posté le 23-08-2002 à 22:25:36  profilanswer
 

Taureau a écrit a écrit :

mouais...mais juste en chocolat alors car c'était pas si terrible  :D  




Pour la patience  :D


---------------
Des bons sites pour Delphi? http://forum.hardware.fr/forum2.php3?post=16838&cat=10 -- informaticien -- http://www.z0rglub.com/phpwebgallery/ -- Delphi :love:
n°201040
taureau
Posté le 23-08-2002 à 22:29:08  profilanswer
 

j'avais compris  :D  
 
mais bon vu mon "grand" nombre de post j'ai encore une forte dose de patience en moi  :D

n°201043
[SDF]Poire
Vive Grumly
Posté le 23-08-2002 à 22:33:52  profilanswer
 

Taureau a écrit a écrit :

j'avais compris  :D  
 
mais bon vu mon "grand" nombre de post j'ai encore une forte dose de patience en moi  :D  




Mais des posts tjs de qualités...
Il vaut mieux de la qualité que de la quantité comme dit le proverbe...


---------------
Des bons sites pour Delphi? http://forum.hardware.fr/forum2.php3?post=16838&cat=10 -- informaticien -- http://www.z0rglub.com/phpwebgallery/ -- Delphi :love:
n°201046
taureau
Posté le 23-08-2002 à 22:40:58  profilanswer
 

on va pas aller si loin sur la qualité de mes posts heins ?
 
merci pour le chocolat je me dépêche de le prendre avant qu'il ne fonde sous "la qualité" de mes posts passés  :D

n°201056
[SDF]Poire
Vive Grumly
Posté le 23-08-2002 à 23:10:49  profilanswer
 

Taureau a écrit a écrit :

on va pas aller si loin sur la qualité de mes posts heins ?
 
merci pour le chocolat je me dépêche de le prendre avant qu'il ne fonde sous "la qualité" de mes posts passés  :D  




 :lol:  
 :gun:


---------------
Des bons sites pour Delphi? http://forum.hardware.fr/forum2.php3?post=16838&cat=10 -- informaticien -- http://www.z0rglub.com/phpwebgallery/ -- Delphi :love:
mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Delphi/Pascal

  canvas resize

 

Sujets relatifs
Format tiff + php + resize d'images...peut on enegistrer un canvas en image jpg ou bmp ?
resize window au chargement d'un pop-up?ScrollPane sur un canvas
Resize auto de frames...C'est possible?[C++Builder] Rotation de Canvas
[C++Builder] Effacement de texte dans un canvas[C++Builder] Initialisation de canvas
[C++Builder] CanvasDétecter un RESIZE dans un Navigateur ?
Plus de sujets relatifs à : canvas resize


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)