C#で画像のサイズを変更する

要件を満たさないサイズの画像を取得することがよくあるため、それに応じてサイズを変更する必要があります。この記事では、.NETアプリケーション内からC#を使用して画像のサイズを変更する方法を学習します。さらに、ラスター画像とベクター画像のサイズを明示的に変更する方法を学習します。

画像のサイズを変更する.NET API

画像のサイズを変更します。 Aspose.Imaging for .NETを使用します。さまざまな種類のラスター画像やベクター画像を操作するための強力な画像処理APIです。 APIのDLLをダウンロードするか、NuGetを介してインストールできます。

PM> Install-Package Aspose.Imaging

C#を使用してラスター画像のサイズを変更する

ラスター画像のサイズを変更するには、2つの方法(PNG、GIF、JPEGなど)があります。単純なサイズ変更と、サイズ変更タイプを使用したサイズ変更です。単純なサイズ変更では、高さと幅を指定して画像のサイズを変更します。一方、2番目の方法では、さまざまなサイズ変更手法を使用します。次のセクションでは、上記の各方法を使用して画像のサイズを変更する方法を示します。

画像の簡単なサイズ変更

以下は、C#で画像のサイズを変更する手順です。

  • まず、Imageクラスを使用して画像ファイルをロードします。
  • 次に、Image.Resize(Int32, Int32)メソッドを呼び出して画像のサイズを変更します。
  • 最後に、Image.Save(string)メソッドを使用してサイズ変更された画像を保存します。

次のコードサンプルは、.NETアプリケーションで画像のサイズを変更する方法を示しています。

// 画像を読み込む
using (Image image = Image.Load("aspose-logo.jpg"))
{
    // 画像のサイズを変更し、サイズ変更した画像を保存します
    image.Resize(300, 300);
    image.Save("SimpleResizing_out.jpg");
}

サイズ変更タイプを使用して画像のサイズを変更

ResizeType列挙型は、要件に応じて使用できるサイズ変更手法を指定するために使用されます。サポートされているサイズ変更タイプの完全なリストは、ここにあります。以下は、特定のサイズ変更手法を使用して画像のサイズを変更する手順です。

次のコードサンプルは、特定のサイズ変更手法を使用して画像のサイズを変更します。

// 画像を読み込む
using (Image image = Image.Load("aspose-logo.jpg"))
{
    // 画像のサイズを変更し、サイズ変更した画像を保存します
    image.Resize(300, 300, ResizeType.LanczosResample);
    image.Save("SimpleResizing_out.jpg");
}

画像のサイズを比例的に変更

高さと幅を指定して画像のサイズを変更すると、画像が縮小または拡大縮小される場合があります。したがって、アスペクト比を手動で計算する必要があります。ただし、アスペクト比の計算を誤ると、画像が引き伸ばされる可能性があります。このような問題を回避するために、比例サイズ変更を使用できます。これを実現するための手順は次のとおりです。

画像のサイズを比例的に変更するときに特定のサイズ変更タイプを使用する場合は、オーバーロードメソッドImage.ResizeWidthProportionally(Int32, ResizeType)およびImage.ResizeHeightProportionally(Int32, ResizeType)を使用します。

次のコードサンプルは、C#を使用して画像のサイズを比例的に変更する方法を示しています。

// 画像を読み込む
using (Image image = Image.Load("aspose-logo.png"))
{
    // 画像データをキャッシュする
    if (!image.IsCached)
    {
        image.CacheData();
    }
    
    // 幅と高さを指定します
    int newWidth = image.Width / 2;
    image.ResizeWidthProportionally(newWidth);
    int newHeight = image.Height / 2;
    image.ResizeHeightProportionally(newHeight);
    
    // 画像を保存
    image.Save("ResizeImageProportionally_out.png");
}

C#でベクター画像のサイズを変更する

Aspose.Imaging for .NETでは、ベクター画像のサイズを変更して、ラスター画像形式で保存することもできます。次のコードサンプルは、SVG画像のサイズを変更し、出力をPNG形式で保存する方法を示しています。

// 画像を読み込む
using (Image image = Image.Load("image.svg"))
 {
    // 画像のサイズをPNGに変更
    image.Resize(image.Width * 10,image.Height * 15);
    image.Save("Logotype_10_15.png", new PngOptions()
    {
        VectorRasterizationOptions = new SvgRasterizationOptions()
    });
 }

無料のAPIライセンスを取得する

無料の一時ライセンスを取得、評価の制限なしにAspose.Imaging for .NETを使用できます。

結論

この記事では、C#を使用してプログラムで画像のサイズを変更する方法を学習しました。さらに、コードサンプルは、画像の単純なサイズ変更または特定のタイプを使用したサイズ変更を実行する方法を示しています。また、画像のサイズを変更する際にアスペクト比を手動で計算しないようにする方法についても説明しました。さらに、ベクトル画像のサイズ変更についても最後に説明します。さらに、ドキュメントを使用して、.NET画像処理APIの詳細を調べることができます。また、GitHubからソースコードサンプルの完全なパッケージをダウンロードできます。ご不明な点がございましたら、フォーラムまでお問い合わせください。

関連項目