ホームページ > バックエンド開発 > C++ > C#/.NET で 2 つの画像を結合し、透明度を維持しながら小さい画像を大きい画像の中央に配置するにはどうすればよいですか?

C#/.NET で 2 つの画像を結合し、透明度を維持しながら小さい画像を大きい画像の中央に配置するにはどうすればよいですか?

Patricia Arquette
リリース: 2025-01-04 16:51:39
オリジナル
447 人が閲覧しました

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

C#/.NET での画像の結合: 総合ガイド

はじめに

魅力的な画像の作成複数の画像を組み合わせてビジュアルを作成することは、画像編集から Web デザインに至るまで、さまざまな分野で一般的なタスクです。 C#/.NET では、この結合プロセスには、強力なグラフィック API とその関連クラスの利用が含まれます。

問題ステートメント

2 つの画像があるとします。透明な 500x500 画像(画像 A) と 150x150 の画像 (画像 B)。目標は、これらの画像をマージし、ImageA の中央領域の透明度を維持しながら ImageB を ImageA の中心に配置することです。

解決策

解決策は、空の領域を作成することから始まります。サイズ500x500のキャンバス。次に、ImageB をキャンバス上に描画し、中央に揃えます。最後に、キャンバス上に ImageA を描画し、その透明な中心から ImageB が見えるようにします。

実装

次の C# コードは、この結合プロセスの詳細な実装を提供します。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

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 クラスがキャンバスに画像を描画するために必要なメソッドを提供します。 InterpolationMode プロパティにより、画像をスケーリングするときに高品質の画像リサンプリングが保証されます。 Bitmap クラスはキャンバスをカプセル化し、結合されたイメージをファイルに保存できるようにします。

結論

グラフィック API とその関連クラスを利用することで、イメージを結合します。 C#/.NET は簡単な作業になります。この記事で提供されているコード スニペットは、透明な画像と不透明な画像を効果的に組み合わせて、さまざまなアプリケーション向けに動的で魅力的なビジュアルを作成する方法を示しています。

以上がC#/.NET で 2 つの画像を結合し、透明度を維持しながら小さい画像を大きい画像の中央に配置するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート