首頁 > 後端開發 > C++ > 如何在 C#/.NET 中合併兩個影像,將較小的影像置於較大的影像之上,同時保持透明度?

如何在 C#/.NET 中合併兩個影像,將較小的影像置於較大的影像之上,同時保持透明度?

Patricia Arquette
發布: 2025-01-04 16:51:39
原創
363 人瀏覽過

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

在C#/.NET 合併影像:綜合指南

問題陳述

假設您有兩個影像:透明的 500x500 影像(ImageA) 和 150x150 影像 (ImageB)。您的目標是合併這些影像,將 ImageB 放置在 ImageA 的中心,同時保留 ImageA 中間區域的透明度。

解決方案

解決方案首先建立一個空的畫布尺寸為 500x500。隨後,將 ImageB 繪製到畫布上,並將其居中對齊。最後,在畫布上繪製 ImageA,使其透明中心顯示 ImageB。

實作

以下C# 程式碼提供了此合併過程的詳細實作:

在此程式碼中,Graphics 類別提供了將圖像繪製到畫布上所需的方法。 InterpolationMode 屬性可確保縮放影像時高品質的影像重採樣。 Bitmap 類別封裝了畫布,並允許您將合併的影像儲存到檔案中。

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);
            }
        }
    }
}
登入後複製

結論

透過利用 Graphics API 及其關聯的類別,將影像合併為C#/.NET 成為一項簡單的任務。本文提供的程式碼片段示範如何有效地組合透明和非透明影像,為各種應用程式創建動態且引人入勝的視覺效果。

以上是如何在 C#/.NET 中合併兩個影像,將較小的影像置於較大的影像之上,同時保持透明度?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板