C # en plusieurs images de synthèse, le format sélectionnable

Dans certains cas, la pluralité d'images nécessaires, co (combat) devient un effet synthétisé Exemple:

vertical:

paysage:

 ImageMergeOrientation ENUM
    {
        Horizontal,
        vertical
    }

combineImages private void (FileInfo [] fichiers, chaîne toPath, ImageMergeOrientation MergeType = ImageMergeOrientation.Vertical)
        {
            // changer l'emplacement pour stocker l'image finale.
            var finalImage = toPath;
            var imgs = files.Select (f => Image.FromFile (f.FullName));
 
            var = finalWidth MergeType == ImageMergeOrientation.Horizontal?
                imgs.Sum (img => img.Width):
                imgs.Max (img => img.Width);
 
            var = finalHeight MergeType == ImageMergeOrientation.Vertical?
                imgs.Sum (img => img.Height):
                imgs.Max (img => img.Height);
 
            var finalImg = new Bitmap (finalWidth, finalHeight);
            Graphics g = Graphics.FromImage (finalImg);
            g.Clear (SystemColors.AppWorkspace);
 
            var width = finalWidth;
            hauteur = finalHeight var;
            var nIndex = 0;
            foreach (fichier FileInfo dans les fichiers)
            {
                image img = Image.FromFile (file.FullName);
                si (nIndex de 0)
                {
                    g.DrawImage (img, nouveau point (0, 0));
                    nIndex ++;
                    largeur = img.Width;
                    hauteur = img.Height;
                }
                Autre
                {
                    commutateur (MergeType)
                    {
                        cas ImageMergeOrientation.Horizontal:
                            g.DrawImage (img, nouveau point (largeur, 0));
                            largeur = + img.Width;
                            Pause;
                        cas ImageMergeOrientation.Vertical:
                            g.DrawImage (img, nouveau point (0, hauteur));
                            hauteur + = img.Height;
                            Pause;
                        par défaut:
                            throw new ArgumentOutOfRangeException ( "MergeType");
                    }
                }
                img.Dispose ();
            }
            G.Dispose ();
            finalImg.Save (finalImage, System.Drawing.Imaging.ImageFormat.Tiff);
            finalImg.Dispose ();
        }
 

Code Description:

images horizontales ou verticales combinées en fonction des paramètres

Si elle est horizontale, la plus grande hauteur de l'image passe, si la largeur longitudinale de la plus grande va

UT code:

[TestMethod]
        Combine_Multiple_SampleImages_IntoOne public void ()
        {
            const string folderPath = "C: \\ \\ \\ Les utilisateurs public Photos \\ Pictures exemple";
            images var = new DirectoryInfo (cheminDossier) .GetFiles ( "* jpg.", SearchOption.TopDirectoryOnly);
 
            CombineImages (images, "C: /FinalImage_H.tiff");
            CombineImages (images, "C: /FinalImage_V.tiff", ImageMergeOrientation.Vertical);
        }
 

Publié six articles originaux · louange gagné 189 · vues 280 000 +

Je suppose que tu aimes

Origine blog.csdn.net/newbie_xymt/article/details/103298570
conseillé
Classement