[C#] * Résolu tout seul * Enregistrer une image avec un contour

* Résolu tout seul * Enregistrer une image avec un contour [C#] - C#/.NET managed - Programmation

Marsh Posté le 31-05-2006 à 22:24:39    

-- Résolu tout seul, comme d'hab :o --
 
Question con...
 
Mettons que j'ai cette image :
http://magicbuzz.multimania.com/files/sample.png
 
Je veux en faire une thumbnail.
La méthode par défaut va me donner ça :
http://magicbuzz.multimania.com/files/thbdef.png
Sauf que je ne veux pas la déformer.
Hors, les dimensions de la thumbnail sont imposée.
 
Je dois donc générer ça :
http://magicbuzz.multimania.com/files/thumbnail.png
 
Pour le changement de taille, pas de souci.
Seul problème, c'est que je passe par un objet "Graphics", et pas moyen de trouver comment en récupérer une image... :/


Message édité par Arjuna le 31-05-2006 à 22:56:38
Reply

Marsh Posté le 31-05-2006 à 22:24:39   

Reply

Marsh Posté le 31-05-2006 à 22:25:53    

(l'image est mal choisie je crois, on voit à peine le problème de ratio :D)

Reply

Marsh Posté le 31-05-2006 à 22:51:25    

Hmmm
 
Je viens de trouver une méthode mais...
1) D'un coup à l'autre, j'ai pas les mêmes miniatures alors que les images sources sont les même :heink:
2) Ca fait n'importe quoi
 
=> Le seul truc qui est bon, c'est que les images sont bien positionnées dans la miniature... Mais pour le reste... :sweat:
 

Code :
  1. float ratio = (float)picture.image.Width / (float)picture.image.Height;
  2.                     Image tmpThumbnail = picture.image.GetThumbnailImage(Math.Min(160, (int)(100f * ratio)), Math.Min(100, (int)(160f / ratio)), null, new IntPtr());
  3.                     Image finalThumbnail = new Bitmap(160, 100);
  4.                     Graphics g = Graphics.FromImage(finalThumbnail);
  5.                     g.Clear(Color.Transparent);
  6.                     g.DrawImage(tmpThumbnail, (160f - (float)tmpThumbnail.Width) / 2f, (100f - (float)tmpThumbnail.Height) / 2f);
  7.                     finalThumbnail.Save("temp\\pictures\\thumbs\\" + picture.name, ImageFormat.Png);


Message édité par Arjuna le 31-05-2006 à 22:51:57
Reply

Marsh Posté le 31-05-2006 à 22:53:00    

PS: En pas à pas, j'ai tout bon dans le code (position, taille, etc.)
 
=> Mais ça plante :o (problème de ressource qui ne sont plus disponibles ou chais pas quoi)

Reply

Marsh Posté le 31-05-2006 à 22:55:40    

Mon Dieu qu'il est con ce FrameWork :o
 

Code :
  1. g.DrawImage(tmpThumbnail, (160f - (float)tmpThumbnail.Width) / 2f, (100f - (float)tmpThumbnail.Height) / 2f, (float)tmpThumbnail.Width, (float)tmpThumbnail.Height);


 
Si on ne spécifie pas la taille de l'image à dessiner, alors... ben chais pas ce qu'il fout... Soit y'a un problème de résolution, soit il est complètement barge, mais il fait n'importe quoi !
 
Maintenant ça marche :bounce:

Reply

Sujets relatifs:

Leave a Replay

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