"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > 투명성을 보존하는 동안 더 큰 이미지를 중심으로 C#/. Net의 두 이미지를 어떻게 병합 할 수 있습니까?

투명성을 보존하는 동안 더 큰 이미지를 중심으로 C#/. Net의 두 이미지를 어떻게 병합 할 수 있습니까?

2025-03-12에 게시되었습니다
검색:521

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

Merging Images in C#/.NET: A Comprehensive Guide

Introduction

Creating captivating visuals by combining multiple images is a common task in various domains, from image editing to web design. C#/. Net 에서이 병합 프로세스에는 강력한 그래픽 API 및 관련 클래스를 사용하는 것이 포함됩니다. 당신의 목표는 Imagea의 중간 영역의 투명성을 유지하면서 Imagea의 중심에 이미지를 배치하는이 이미지를 병합하는 것입니다.

솔루션

솔루션은 크기 500x500의 빈 캔버스를 만들어 시작합니다. 그 후, 당신은 캔버스에 imageb를 그려 중앙에 정렬합니다. 마지막으로, 당신은 캔버스 위에 imagea를 그려서 투명한 센터가 imageb를 공개 할 수있게합니다.

구현

다음 c# 코드는이 병합 프로세스의 세부 구현을 제공합니다. 네임 스페이스 imagemerger { 공개 정적 수업 프로그램 { public static void main (String [] args) { // 이미지를로드합니다 image imagea = image.fromfile ( "path/to/imagea.png"); image imageb = image.fromfile ( "path/to/imageb.png"); // 빈 캔버스를 만듭니다 int width = imagea.width; int height = imagea.height; 사용 (var bitmap = new BitMap (너비, 높이)) { // 캔버스에 기본 이미지를 그립니다 사용 (var canvas = graphics.fromimage (bitmap)) { canvas.interpolationMode = interpolationMode.HighQualityBicubic; Canvas.DrawImage (imagea, 새로운 사각형 (0,0, 너비, 높이), 새로운 사각형 (0,0, imagea.width, imagea.height), GraphicsUnit.pixel); // 오버레이 이미지의 위치를 ​​계산합니다 int x = (너비 - imageb.width) / 2; int y = (높이 -ImageB.Height) / 2; // 캔버스에 오버레이 이미지를 그립니다 canvas.DrawImage (imageb, x, y); } // 병합 된 이미지를 파일에 저장합니다 bitmap.save ( "path/to/mergedimage.png", imageformat.png); } } } }

이 코드에서 그래픽 클래스는 캔버스에 이미지를 그리는 데 필요한 방법을 제공합니다. 보간 모드 속성은 이미지를 스케일링 할 때 고품질 이미지 리샘플링을 보장합니다. 비트 맵 클래스는 캔버스를 캡슐화하고 병합 된 이미지를 파일에 저장할 수 있습니다.

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

결론

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

[C#/. 이 기사에 제공된 코드 스 니펫은 투명하고 비 투명한 이미지를 효과적으로 결합하여 다양한 응용 프로그램에 대한 동적이고 매력적인 시각적을 생성하는 방법을 보여줍니다.

최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3