2010-03-31 7 views
9

J'ai une image qui est 240x320 (image de caméra iphone en portrait), et j'ai besoin de programmer (en C#) ajouter des "barres" blanches sur les côtés augmentant la taille de l'image à 320x320. Je ne veux pas mettre à l'échelle l'image car cela gâcherait le rapport d'aspect.C# image espace blanc

J'ai trouvé beaucoup d'informations sur la façon de supprimer les barres blanches avec C#, mais rien sur la façon de les ajouter. Je n'arrive pas. Quelqu'un a-t-il des commentaires qui pourraient me guider dans la bonne direction?

Merci un bouquet, Brett

Répondre

4

Créer un nouveau bitmap blanc vide de la taille désirée et blit l'image plus petite sur elle.

0

Fondamentalement créer un nouveau bitmap avec la dimension requise, l'effacer avec la couleur que vous voulez et ensuite dessiner le bitmap plus petit de sorte qu'il est centré verticalement.

12
using (System.Drawing.Image src = System.Drawing.Image.FromFile("picture.jpg")) 
{ 
     using (Bitmap bmp = new Bitmap(320, 320)) 
     { 
       Graphics g = Graphics.FromImage(bmp); 
       g.Clear(Color.White); 
       g.DrawImageUnscaled(src, 60, 0, 240, 320); 
       bmp.Save("file.jpg", ImageFormat.Jpeg); 
     } 
} 

Souvenez-vous de disposer l'objet après utilisation;)

+0

Génial! Merci beaucoup! – Brett

+0

Le code pour la réponse de @ Matti. +1 pour Matti !! – kenny

+4

Ceci est un bon candidat pour l'instruction using pour gérer l'élimination. E.g. using (Bitmap bmp = new Bitmap (320, 320)) { // ... } –

Questions connexes