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

  FORUM HardWare.fr
  Programmation
  Delphi/Pascal

  [Delphi] antialiasing (ou lissage)

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Delphi] antialiasing (ou lissage)

n°739034
drac
Posté le 26-05-2004 à 09:33:58  profilanswer
 

Voila, je voudrais creer une image (en 600*600) avec anti-aliasing.
pour ce faire il me faut:
1: creer une image en 2400*2400 (rapport de 4)
2:appliquer un algo de reduction (ou utiliser un logiciel specialisé)
 
 
je bloque a l'etape 1 :
J'essaye de creer une image en 2400*2400 , l'image semble se calculer correctement (je ne peut bien sur voir que la partie 1600*1200, resolution de mon ecran), je l'enregistre en bmp.
Je l'ouvre avec paintbrush, il me dit que l'image est bien en 2400*2400 mais je ne vois que 1600*1200 .
Comment faire pour avoir un vrai bmp effectif en 2400*2400 (ie superieur a la resolution de l'ecran) ?  
 
 

mood
Publicité
Posté le 26-05-2004 à 09:33:58  profilanswer
 

n°739035
skeye
Posté le 26-05-2004 à 09:35:21  profilanswer
 

drac a écrit :

Voila, je voudrais creer une image (en 600*600) avec anti-aliasing.
pour ce faire il me faut:
1: creer une image en 2400*2400 (rapport de 4)
2:appliquer un algo de reduction (ou utiliser un logiciel specialisé)
 
 
je bloque a l'etape 1 :
J'essaye de creer une image en 2400*2400 , l'image semble se calculer correctement (je ne peut bien sur voir que la partie 1600*1200, resolution de mon ecran), je l'enregistre en bmp.
Je l'ouvre avec paintbrush, il me dit que l'image est bien en 2400*2400 mais je ne vois que 1600*1200 .
Comment faire pour avoir un vrai bmp effectif en 2400*2400 (ie superieur a la resolution de l'ecran) ?


[:mlc]
nan mais en vrai c'est quoi ta question?

n°739042
drac
Posté le 26-05-2004 à 09:39:07  profilanswer
 

skeye a écrit :

[:mlc]
nan mais en vrai c'est quoi ta question?


Bah je me suis expliqué non ?
Je voudrais faire un bitmap de taille 2400*2400.

n°739045
skeye
Posté le 26-05-2004 à 09:40:46  profilanswer
 

drac a écrit :

Bah je me suis expliqué non ?
Je voudrais faire un bitmap de taille 2400*2400.


et comment tu détermines que l'image que tu as créée ne fait pas les 2400*2400 puisque ton logiciel te dit que c'est le cas?


Message édité par skeye le 26-05-2004 à 09:40:59
n°739052
drac
Posté le 26-05-2004 à 09:43:02  profilanswer
 

skeye a écrit :

et comment tu détermines que l'image que tu as créée ne fait pas les 2400*2400 puisque ton logiciel te dit que c'est le cas?

paintbrush me dit que c'est le cas (attributs de l'image) mais il n'y a que 1600*1200 de visible ,le reste est en blanc .
Pour info je fais des fractales.

n°739054
skeye
Posté le 26-05-2004 à 09:44:30  profilanswer
 

drac a écrit :

paintbrush me dit que c'est le cas (attributs de l'image) mais il n'y a que 1600*1200 de visible ,le reste est en blanc .
Pour info je fais des fractales.


Et tu la crées comment ton image pour l'instant?

n°739076
drac
Posté le 26-05-2004 à 09:54:03  profilanswer
 

skeye a écrit :

Et tu la crées comment ton image pour l'instant?


Je fais un transfert du canvas de ma form1 vers ma timage par l'intermediaire de cadres:
form1.image1.canvas.copyrect(cadre2,form1.canvas,cadre1);
form1.image1.picture.savetofile(mafractale);image1 a bien sur la taille appropriée (2400*2400)ainsi que les cadres

n°739087
skeye
Posté le 26-05-2004 à 09:56:14  profilanswer
 

drac a écrit :

Je fais un transfert du canvas de ma form1 vers ma timage par l'intermediaire de cadres:
form1.image1.canvas.copyrect(cadre2,form1.canvas,cadre1);
form1.image1.picture.savetofile(mafractale);image1 a bien sur la taille appropriée (2400*2400)ainsi que les cadres


Tu fais une copie de ce que tu as à l'écran?[:mlc]
Tu devrais plutôt faire tes calculs en ram et afficher ensuite, et faire la sauvegarde de ce que tu as en mémoire, pas à l'écran.
Ce qui dépasse de ton écran n'est probablement pas dessiné.

n°739109
Moktar1er
No one replies...
Posté le 26-05-2004 à 10:00:54  profilanswer
 

CQFD :D

n°739133
drac
Posté le 26-05-2004 à 10:09:51  profilanswer
 

skeye a écrit :

Tu fais une copie de ce que tu as à l'écran?[:mlc]
Tu devrais plutôt faire tes calculs en ram et afficher ensuite, et faire la sauvegarde de ce que tu as en mémoire, pas à l'écran.
Ce qui dépasse de ton écran n'est probablement pas dessiné.

Oui ça doit etre ça .
Pourtant on voit qu'il calcule toute l'image.
 
Mais si je fais mes calculs en ram (dans un tableau ?)comment je fais pour  sauvegarder ds un fichier ?
Autrement dit j'ai un tableau et je dois pouvoir enregistrer directement dans un fichier bmp sans passer par l'affichage ?
je vois pas comment (mais je debute en delphi)
 

mood
Publicité
Posté le 26-05-2004 à 10:09:51  profilanswer
 

n°739144
Moktar1er
No one replies...
Posté le 26-05-2004 à 10:11:12  profilanswer
 

t'alloue un bitmap et tu écris directement dedans
pour le détail du code, je laisse les spécialiste du Delphi te filer un coup de main

n°739147
skeye
Posté le 26-05-2004 à 10:12:47  profilanswer
 

moktar1er a écrit :

t'alloue un bitmap et tu écris directement dedans
pour le détail du code, je laisse les spécialiste du Delphi te filer un coup de main


[:benou_+1]
J'y connais rien en delphi...[:joce]
En gros oui tu fais tes calculs dans un tableau, et tu dois bien avoir une fonction quelquepart pour enregistrer un bitmap à-partir d'un tableau...

n°739224
antp
Super Administrateur
Champion des excuses bidons
Posté le 26-05-2004 à 10:41:21  profilanswer
 

Tu dessines sur quoi ? TBitmap ou TImage ?
Si c'est un TImage, il faut qu'il soit en 2400x2400 et pas ajusté à la taille de la fenêtre (tu peux le mettre dans un TScrollbox par ex pour avoir des barres de défilement)
Il est pas impossible que Paint ait des problèmes avec des grandes images :D
 
Si le dessin est trop lent, tu mets DoubleBuffer à True, ça te fera l'équivalent du bidule en mémoire copié à l'écran et tout :o


Message édité par antp le 26-05-2004 à 10:43:45

---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°739571
drac
Posté le 26-05-2004 à 12:00:50  profilanswer
 

antp a écrit :

Tu dessines sur quoi ? TBitmap ou TImage ?
Si c'est un TImage, il faut qu'il soit en 2400x2400 et pas ajusté à la taille de la fenêtre (tu peux le mettre dans un TScrollbox par ex pour avoir des barres de défilement)
Il est pas impossible que Paint ait des problèmes avec des grandes images :D
 
Si le dessin est trop lent, tu mets DoubleBuffer à True, ça te fera l'équivalent du bidule en mémoire copié à l'écran et tout :o


merci pour les infos.
Je dessinais sur la form puis je transferais dans un timage pour pouvoir appliquer la methode savetofile (je sais pas faire autrement pour enregistrer un  fichier graphique)
On pourrait donc dessiner directement dans un timage de taille 2400*2400
et sauvegarder avec savetofile  ?
 
Un tscrollbox peut contenir un timage ?
doublebuffers fait parti de quel composant  ?

n°739601
antp
Super Administrateur
Champion des excuses bidons
Posté le 26-05-2004 à 12:11:48  profilanswer
 

Moi je dessinerais directement sur le canvas du TImage, c'est plus simple vu que t'as le SaveToFile directement.
Tu mets ton TScrollbox sur la Form, dans le TScrollbox tu mets le TImage dont tu spécifies les dimensions.
Si le TImage est plus grand que le TScrollbox, des barres de défilement apparaîtront.
Le DoubleBuffered est une propriété booléenne de tous les TWinControl. Vu que le TImage n'est pas un WinControl mais un Graphic, tu dois activer le DoubleBuffered de son parent (le TScrollbox par exemple, ou la Form).


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°739631
drac
Posté le 26-05-2004 à 12:30:38  profilanswer
 

antp a écrit :

Moi je dessinerais directement sur le canvas du TImage, c'est plus simple vu que t'as le SaveToFile directement.
Tu mets ton TScrollbox sur la Form, dans le TScrollbox tu mets le TImage dont tu spécifies les dimensions.
Si le TImage est plus grand que le TScrollbox, des barres de défilement apparaîtront.
Le DoubleBuffered est une propriété booléenne de tous les TWinControl. Vu que le TImage n'est pas un WinControl mais un Graphic, tu dois activer le DoubleBuffered de son parent (le TScrollbox par exemple, ou la Form).

Bon merci , je vais voir si je peux realiser tout ça.


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

  [Delphi] antialiasing (ou lissage)

 

Sujets relatifs
[Delphi] Conversion string > tstrings?(je débute delphi) bouton avec index.
arreter une requete SQL dans DelphiMigrer de Delphi 5 à Delphi 7
LabView, Delphi et DLL[Delphi / Flash] Comment établir une communication entre les 2 ?
[Delphi] cryter / décryter des données avec mot de passe[Delphi] TBitMap.Create pas possible?
[Delphi/Interbase]Probleme de dateLicense Delphi
Plus de sujets relatifs à : [Delphi] antialiasing (ou lissage)


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR