Comment réduire la taille d'une image en C# et .NET 3.5?

J'ai une capture d'écran je prends dans mon application mobile. La capture d'écran prend environ 32 KO lors de l'enregistrement au format png sur un disque.

Je suis l'envoi à un centre de SQL Server et 32 KO est trop grand pour le nombre de fois où j'ai besoin de stocker cette capture d'écran (environ 2500 fois par jour).

Est-il une sorte de tromperie que je peux faire pour le faire pour sauver les petits?

Ici c'est le code que j'utilise maintenant à prendre à partir de Bitmap d'octets (à envoyer au serveur pour le stockage):

MemoryStream stream = new MemoryStream();
 _signatureImage.Save(stream, ImageFormat.Png);
 return stream.ToArray();

_signatureImage est un Bitmap et est la capture d'écran en question.

Voici un exemple de la capture d'écran que je sauve:

Comment réduire la taille d'une image en C# et .NET 3.5?

Choses qui sautent à l'esprit (mais je ne sais pas comment les faire):

  1. Réduire la Hauteur et la Largeur de l'image (mais j'espère que d'une manière qui ne sera pas le déformer).
  2. Changer en une image en noir et blanc (je ne sais pas si je vais le voir tout l'espace réel de l'épargne à partir de ce)
  3. Compresser plus (je n'aime pas ce que beaucoup parce que c'est pas lisible à partir de la base de données).

Note, tout cela doit être fait par programmation, et ne peut pas prendre très longtemps, de sorte que l'image complexe de manipulations sont.

Merci pour toute aide.

Je ne peux pas voir l'image que vous avez posté (http filtrée au travail). Quelles sont les dimensions?
Il est de 480 x 640.

OriginalL'auteur Vaccano | 2010-10-07