Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : L'image redimensionnée est plus lourde que l'originale. [ Multimédia / Image et Vidéo ] (SharpMao)

mardi 22 juillet 2008 à 16:59:39 | L'image redimensionnée est plus lourde que l'originale.

SharpMao

Membre Club
Salut à vous,

J'essaie de redimmensionner une image, pour diviser ses dimensions par 2.

J'ai esssayé avec  ça :

Bitmap original = new Bitmap(originalPath);
Bitmap result = new Bitmap(original.Width/2,original.Height/2);
Graphics g = Graphics.FromImage(result);
g.DrawImage(original , 0, 0, original.Width/2 , original.Height /2);
result.Save(resultPath,ImageFormat.Png); //J'ai essayé aussi avec ImageFormat.Jpeg


Le problème, c'est que l'image initiale pèse 2.8Mo, et que la nouvelle, plus petite, pèse 11.8Mo !!
J'aurais plutôt voulu diminuer le poids...

Si vous aviez une piste, ce serait génial.

Amicalement, SharpMao

"C'est pas parce qu'ils sont nombreux à avoir tort qu'ils ont raison!"
(Coluche / 1944-1986 / Pensées et anecdotes)

mardi 22 juillet 2008 à 21:32:10 | Re : L'image redimensionnée est plus lourde que l'originale.

niky

Membre Club
Réponse acceptée !
Salut,

Plusieurs possibilités :
- Si l'image était en jpg et que tu l'enregistres en png, la taille finale a 99% de chances d'être plus importante... mais là, je ne t'apprend sûrement rien.
- La méthode Save prend aussi en paramètre des options d'encodage. C'est notamment utile pour le jpg où l'on peut régler la qualité d'enregistrement. Je crois qu'elle est fixée à 80% par défaut.
- Ton image originale était en 8 bits/16 bits ou je ne sais quoi et par défaut quand tu créés une bitmap, la profondeur des couleurs est de... 24 ou 32 bits (à vérifier dans la doc).

Je ne vois que ça...

mardi 22 juillet 2008 à 23:42:31 | Re : L'image redimensionnée est plus lourde que l'originale.

Bidou

Administrateur CodeS-SourceS
Moui, même avis que niky...
Tu peux spécifier le type dans le constructeur de ton image finale.
A noter qu'il existe également une méthode GetThumbnail sur la classe Bitmap...



-My Blog-

mercredi 23 juillet 2008 à 07:33:55 | Re : L'image redimensionnée est plus lourde que l'originale.

SharpMao

Membre Club
Réponse acceptée !

Merci à vous deux.

En fait, le problème venait bien de la qualité. Par défaut, elle n'est pas à 80%, mais à 100%.
Pour ceux que ça intéresse, voici un petit bout de code qui fonctionne :

Bitmap original = new Bitmap(originalPath);
Bitmap result = new Bitmap(original.Width / 2, original.Height / 2);
Graphics g = Graphics.FromImage(result);
g.DrawImage(original, 0, 0, original.Width / 2, original.Height / 2);

ImageCodecInfo[] infos = ImageCodecInfo.GetImageEncoders();
ImageCodecInfo jpgInfo = null;
foreach (ImageCodecInfo info in infos)
{
    if (info.FormatID == ImageFormat.Jpeg.Guid)
    {
        jpgInfo = info;
        break;
    }
}
if (jpgInfo == null)
    throw new Exception("Cannot find JPEG image codec.");

System.Drawing.Imaging.Encoder encoder = System.Drawing.Imaging.Encoder.Quality;

EncoderParameters param = new EncoderParameters();
param.Param[0] = new EncoderParameter(encoder, 80L);

result.Save(resultPath, jpgInfo, param);


Par contre, un truc qui m'énerve un peu, c'est que la classe ImageFormat possède bien une méthode FindEncoder retournant un ImageCodecInfo, mais elle est internal .
C'est le pourquoi de la bloucle pour retrouver le bon ImageCodecInfo.

Amicalement, SharpMao

"C'est pas parce qu'ils sont nombreux à avoir tort qu'ils ont raison!"
(Coluche / 1944-1986 / Pensées et anecdotes)


mercredi 23 juillet 2008 à 09:05:43 | Re : L'image redimensionnée est plus lourde que l'originale.

Bidou

Administrateur CodeS-SourceS
Tu peux toujours essayer de l'atteindre avec Reflection mais ça sera pas forcément plus rapide...
Au contaire


-My Blog-

mercredi 23 juillet 2008 à 09:08:30 | Re : L'image redimensionnée est plus lourde que l'originale.

Bidou

Administrateur CodeS-SourceS
Réponse acceptée !
Je viens de voir dans la section community, sur la page de la méthode Save de la classe Image, qu'ils utilisent un code similaire au tient, donc probablement qu'on ne peut pas faire mieux.... pour l'instant.

[ Lien ]



-My Blog-

mercredi 23 juillet 2008 à 10:50:24 | Re : L'image redimensionnée est plus lourde que l'originale.

SharpMao

Membre Club
Ca ne m'étonne pas que ce soit similaire, ça ressemble fortement au code de la méthode de ImageFormat.
Vive Reflector...

Amicalement, SharpMao

"C'est pas parce qu'ils sont nombreux à avoir tort qu'ils ont raison!"
(Coluche / 1944-1986 / Pensées et anecdotes)



Cette discussion est classé dans : image, bitmap, result, original, redimensionnée


Répondre à ce message

Sujets en rapport avec ce message

dessiner un graphics sur une image contenue dans une pictureBox [ par godefrw ] Bonjour, je cherche à afficher un objet Graphics (sur lequel j'ai dessiner des formes rectangles, rond etc) par dessus une image. Mon image est conte pb d'affichage avec directx / c# [ par amorosalain ] SAMJ'essaye d'afficher une image par dessus mon espace 3D. J'utilise donc des PositionNormalTextured pour mon environnement 3D et je voulais utiliser Bitmap: colorisation de pixels...Help! [ par Zekez ] Bonjour,Voilà, j'ai un petit problème de colorisation d'une Bitmap... Je dois effectuer un remplissage de couleur (comme dans Paint) et je dois colori declarer une image, comment??? [ par Fildomen ] salutje veux faire :Image im = new Image();et ca marche po :-[vous pouvez me dire comment declarer une nouvelle image?mercisinon, comment utiliser l Bitmap à partir d'une fenêtre... Help! [ par Zekez ] Bonjour,je suis en train de faire une application en C# dans laquelle j'ai besoin d'insérer une sorte de printscreen d'une fenêtre dans une bitmap... class Bitmap obscur [ par sebseb42 ] Salut a tous, j'ai un truc plutot bizarre, je cherche a compresser des images a la voler sans passer par le disque-dur.je fait ceci :public Truc(Bitma Double buffering et lenteur d'affichage [ par takamura ] Bonjour j'essaye de  réaliser un logiciel tout bête qui affiche la map d'un jeu.je souhaite que l'on puisse zoomer /dezoomer sur cette carte. le probl Conversion d'un Bitmap en Tableau a 2 dimension [ par astragoth66 ] Bonjour, j'aimerai savoir s'il est possible de convertir une image Bitmap, en un tableau à 2 dimension. pouvoir regarder les pixels de mon image au co Impossible de visualiser un bitmap sous Photoshop ou IE... [ par robbielove ] Bonjour,Je cherche à transformer les couleurs d'une image. Pour cela je crée un bitamp aux dimensions de l'image origianle, je remplis le bitmap pixel modifier un bitmap [ par catamenia ] bonjours,J'aimerais modifier une image bitmap que je viens d'ouvrir.Pour cela je fais : Bitmap b = new Bitmap(this<FONT siz


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,218 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.