[C#] arrondir les angles d'une image

arrondir les angles d'une image [C#] - C#/.NET managed - Programmation

Marsh Posté le 20-05-2009 à 15:54:06    

Bonjour à tous

 

je souhaite pouvoir arrondir les angles d'une image dans mon prog

 

voici ce que j'aimerais faire :

 

http://www.phpcs.com/gdi/c/38149.cs.jpg

 

j'ai chercher, mais j'ai rien trouvé.. merci de votre aide.. un newbie en c# :-)

 

donc au final ca me fait la meme image avec les angles arrondis et ce qui devrait rester de l'angle en transparence.


Message édité par flclsd le 20-05-2009 à 15:54:47
Reply

Marsh Posté le 20-05-2009 à 15:54:06   

Reply

Marsh Posté le 20-05-2009 à 19:19:29    

j'ai trouvé ca, mais j'ai une erreur sur response
 
http://www.jigar.net/howdoi/viewhtmlcontent98.aspx

Reply

Marsh Posté le 20-05-2009 à 22:12:37    

Comment ça une erreur sur Response ? :heink:

 

C'est très très secondaire, l'important c'est que tu aies ton algo de transformation d'image de A à Z, ce qui semble être le cas.
Tu peux virer les Response.xx et te contenter du Bitmap.Save pour enregistrer le fichier sur DD plutôt que dans le OutputStream du Response.


Message édité par TotalRecall le 20-05-2009 à 22:12:43

---------------
Réalisation amplis classe D / T      Topic .Net - C# @ Prog
Reply

Marsh Posté le 21-05-2009 à 01:49:07    

Entre temps, j'ai lu et compris donc j'ai réussi.. par contre ce code ne correspond pas a mes besoins.. en effet les angles ne sont pas transparent, j'ai essayer avec une image png au lien de jpg et c'est pareil.. erf :cry:

Reply

Marsh Posté le 20-04-2012 à 10:20:21    

Bonjour,
 
Pour arrondir les angles d'une photo, c'est simple et rapide :
 
- télécharger PhotoFiltre gratuit (http://www.01net.com/telecharger/windows/Multimedia/photo_numerique/fiches/telecharger-21756.html)
- ouvrir la photo dans PhotoFiltre
- cliquer à droite de l'écran sur le rectangle puis l'appliquer à la photo
- faire clic droit "Recadrer l'image"
- faire clic droit "Copier"
- "Coller" la photo dans Word ou autre logiciel et les anciens bords à angles droits n'apparaissent plus.
 
IsaDéco

Reply

Marsh Posté le 20-04-2012 à 16:43:47    

Code :
  1. public Image RoundCorners(Image StartImage, int CornerRadius, Color BackgroundColor)
  2. {
  3.     CornerRadius *= 2;
  4.     Bitmap RoundedImage = new Bitmap(StartImage.Width, StartImage.Height);
  5.     Graphics g = Graphics.FromImage(RoundedImage);
  6.     g.Clear(BackgroundColor);
  7.     g.SmoothingMode = SmoothingMode.AntiAlias;
  8.     Brush brush = new TextureBrush(StartImage);
  9.     GraphicsPath gp = new GraphicsPath();
  10.     gp.AddArc(0, 0, CornerRadius, CornerRadius, 180, 90);
  11.     gp.AddArc(0 + RoundedImage.Width - CornerRadius, 0, CornerRadius, CornerRadius, 270, 90);
  12.     gp.AddArc(0 + RoundedImage.Width - CornerRadius, 0 + RoundedImage.Height - CornerRadius, CornerRadius, CornerRadius, 0, 90);
  13.     gp.AddArc(0, 0 + RoundedImage.Height - CornerRadius, CornerRadius, CornerRadius, 90, 90);
  14.     g.FillPath(brush, gp);
  15.     return RoundedImage;
  16. }
  17. Image StartImage = Image.FromFile("YourImageFile.jpg" );
  18. Image RoundedImage = this.RoundCorners(StartImage, 25, Color.White);


 
En paramètres de ta fonction :
- l'image de base
- L'angle désiré (taille de l'arrondi grosso modo)
- La couleur de fond désirée (qui remplacera les coins rognés)


---------------
VA APPRENDRE ET REVIENS QUAND TU SAIS, SINON ABSTIENT TOI C'EST UN GRAND CONSEIL QUE JE TE DONNE... TU ES INCOMPÉTENT ET C'EST UNE RÉALITÉ, TU N'AS RIEN A FAIRE ICI FAUT S'Y CONNAITRE ... -Jojo1998 - RIP - http://tinyurl.com/qc47ftk
Reply

Marsh Posté le 21-04-2012 à 09:26:02    

Pour citer la source de ixemul : http://stackoverflow.com/questions [...] rners-in-c :whistle:
 
Reste à voir si ça se comporte bien en lui passant un Color.Transparent mais à mon avis non, pas en l'état : déjà je pense qu'à l'instanciation du Bitmap il faut passer par le constructeur qui permet de spécifier la présence du canal alpha...


---------------
Réalisation amplis classe D / T      Topic .Net - C# @ Prog
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed