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);
}