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)