"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Comment puis-je fusionner deux images en C # /. Net, centrant une image plus petite sur une plus grande tout en préservant la transparence?

Comment puis-je fusionner deux images en C # /. Net, centrant une image plus petite sur une plus grande tout en préservant la transparence?

Publié le 2025-03-12
Parcourir:616

How can I merge two images in C#/.NET, centering a smaller image over a larger one while preserving transparency?

Fusion d'images en c # /. Net: un guide complet

Introduction

Création de visuels captivants en combinant les images multiples est une tâche commune dans divers domaines, à partir de l'édition d'images vers le design Web. Dans C # /. Net, ce processus de fusion consiste à utiliser la puissante API graphique et ses classes associées.

Instruction Problème

Supposons que vous ayez deux images: une image transparente 500x500 (IMAMEA) et une image 150x150 (imageB). Votre objectif est de fusionner ces images, de positionner ImageB au centre de l'imagea tout en préservant la transparence de la région centrale de l'imagea.

Solution

La solution commence par créer une toile vide de taille 500x500. Par la suite, vous dessinez ImageB sur la toile, en l'alignant de manière centralisée. Enfin, vous dessinez Imagea sur la toile, permettant à son centre transparent de révéler ImageBB.

implémentation

Le code C # suivant fournit une implémentation détaillée de ce processus de fusion:

using System.Drawing;

namespace ImageMerger
{
    public static class Program
    {
        public static void Main(string[] args)
        {
            // Load the images
            Image imageA = Image.FromFile("path/to/imageA.png");
            Image imageB = Image.FromFile("path/to/imageB.png");

            // Create an empty canvas
            int width = imageA.Width;
            int height = imageA.Height;
            using (var bitmap = new Bitmap(width, height))
            {
                // Draw the base image onto the canvas
                using (var canvas = Graphics.FromImage(bitmap))
                {
                    canvas.InterpolationMode = InterpolationMode.HighQualityBicubic;
                    canvas.DrawImage(imageA,new Rectangle(0,0,width,height),new Rectangle(0,0,imageA.Width,imageA.Height),GraphicsUnit.Pixel);

                    // Calculate the position of the overlay image
                    int x = (width - imageB.Width) / 2;
                    int y = (height - imageB.Height) / 2;

                    // Draw the overlay image onto the canvas
                    canvas.DrawImage(imageB, x, y);
                }

                // Save the merged image to a file
                bitmap.Save("path/to/mergedImage.png", ImageFormat.Png);
            }
        }
    }
}

Dans ce code, la classe graphique fournit les méthodes nécessaires pour dessiner les images sur le canevas. La propriété InterpolationMode assure un rééchantillonnage d'images de haute qualité lors de la mise à l'échelle des images. La classe Bitmap résume le canevas et vous permet d'enregistrer l'image fusionnée dans un fichier.

Conclusion

en utilisant l'API graphique et ses classes associées, fusionnant les images dans C # /. Net devient une tâche directe. L'extrait de code fourni dans cet article montre comment combiner efficacement des images transparentes et non transparentes, créant des visuels dynamiques et engageants pour diverses applications.

Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3