
JPEGまたはJPGは、画像や写真を保存するために最も一般的に使用される画像形式の1つです。場合によっては、さまざまな理由で画像をトリミングまたは回転する必要があります。この記事では、C#を使用してJPEG画像をトリミングおよびサイズ変更する方法を学習します。
この記事では、次のトピックについて説明します。
JPEGを切り抜いてサイズを変更するC#イメージングAPI
画像の切り抜きとサイズ変更には、Aspose.Imaging for .NETAPIを使用します。これにより、画像や写真をプログラムで作成、読み込み、操作、変換、および圧縮することができます。 APIのDLLをダウンロードするか、NuGetを使用してインストールしてください。
PM> Install-Package Aspose.Imaging
C#を使用してJPEG画像を切り抜く
JPEG / JPG画像は、画像の中央に向かってすべての側面から簡単にトリミングできます。この目的のために、RasterImageクラスは、指定されたシフト値で画像をトリミングするCrop(Int32、Int32、Int32、Int32)メソッドを提供します。画像の境界を切り抜くための引数として、左、右、上、下のシフト値を取ります。以下の手順に従って、シフトによる切り抜きアプローチを使用して画像を切り抜くことができます。
- まず、RasterImageクラスを使用して入力JPG画像をロードします。
- 次に、CacheDataメソッドを使用して画像をキャッシュします。
- その後、シフト値を引数としてCrop()メソッドを呼び出します。
- 最後に、出力ファイルのパスを引数としてSave()メソッドを呼び出し、トリミングされた画像ファイルを保存します。
次のコードサンプルは、C#を使用してJPEG画像をトリミングする方法を示しています。
// このコード例は、シフトによるトリミングアプローチを使用してJPG画像をトリミングする方法を示しています。
// RasterImageクラスのインスタンスに既存の画像をロードします
RasterImage rasterImage = (RasterImage)Image.Load(@"C:\Files\images\aspose_logo.jpg");
// トリミングする前に、パフォーマンスを向上させるために画像をキャッシュする必要があります
if (!rasterImage.IsCached)
{
rasterImage.CacheData();
}
// 4辺すべてのシフト値を定義する
int leftShift = 30;
int rightShift = 30;
int topShift = 30;
int bottomShift = 30;
// シフト値に基づいて、画像にトリミングを適用します
// クロップ方式では、画像の境界が画像の中心に向かってシフトします
rasterImage.Crop(leftShift, rightShift, topShift, bottomShift);
// トリミングした画像を保存します
rasterImage.Save(@"C:\Files\images\cropped_out.jpg");

C#を使用してJPEG画像を切り抜きます。
C#を使用して画像を特定のサイズにトリミングする
RasterImageクラスは、画像の特定の領域を指定されたサイズにトリミングするオーバーロードされたCrop(Rectangle)メソッドも提供します。 Rectangleクラスのインスタンスを引数として取ります。以下の手順に従って、画像を指定したサイズにトリミングできます。
- まず、RasterImageクラスを使用して入力JPG画像を読み込みます。
- 次に、CacheDataメソッドを使用して画像をキャッシュします。
- 次に、指定された場所とサイズでRectangleクラスオブジェクトを初期化します。
- その後、作成したRectangleオブジェクトを引数としてCrop()メソッドを呼び出します。
- 最後に、Save()メソッドを呼び出し、出力ファイルのパスを引数として、トリミングされた画像ファイルを保存します。 。
次のコードサンプルは、C#を使用してJPEG画像を特定のサイズにトリミングする方法を示しています。
// このコード例は、長方形による切り抜きアプローチを使用してJPG画像を切り抜く方法を示しています。
// RasterImageクラスのインスタンスに既存の画像をロードします
RasterImage rasterImage = (RasterImage)Image.Load(@"C:\Files\images\aspose_logo.jpg");
// トリミングする前に、パフォーマンスを向上させるために画像をキャッシュする必要があります
if (!rasterImage.IsCached)
{
rasterImage.CacheData();
}
// 必要なサイズのRectangleクラスのインスタンスを作成します
Rectangle rectangle = new Rectangle(35, 35, 580, 240);
// Rectangleクラスのオブジェクトに対して切り抜き操作を実行します
rasterImage.Crop(rectangle);
// トリミングした画像を保存します
rasterImage.Save(@"C:\Files\images\CroppingByRectangle_out.jpg");

C#を使用して画像を特定のサイズにトリミングします。
C#でJPEG画像のサイズを変更する
Imageクラスは、画像のサイズを変更するためのResize()メソッドを提供します。以下の手順に従って、JPEG画像のサイズを変更できます。
- まず、Imageクラスを使用して入力JPG画像を読み込みます。
- 次に、必要な幅と高さを引数としてResize(int32、int32)メソッドを呼び出します。
- 最後に、Save()メソッドを呼び出し、サイズ変更された画像を保存するための引数として出力ファイルのパスを指定します。
次のコードサンプルは、C#を使用してJPEG画像のサイズを変更する方法を示しています。
// このコード例は、長方形による切り抜きアプローチを使用してJPG画像を切り抜く方法を示しています。
// 既存の画像を読み込む
Image image = Image.Load(@"C:\Files\images\aspose_logo.jpg");
// 新しい幅と高さ
image.Resize(300, 100);
// サイズ変更した画像を保存します
image.Save(@"C:\Files\images\SimpleResizing_out.jpg");

C#でJPEG画像のサイズを変更します。
C#でJPEG画像のサイズを比例的に変更します
高さと幅を固定してサイズを変更すると、画像が引き伸ばされる場合があります。比例サイズ変更を使用して、画像が引き伸ばされるのを防ぐことができます。この目的のために、ImageクラスはResizeWidthProportionally(Int32)およびResizeHeightProportionally(Int32)メソッドを提供します。幅と高さに比例して画像のサイズを変更するには、以下の手順に従ってください。
- まず、Imageクラスを使用して入力JPG画像を読み込みます。
- 次に、引数として新しい幅を使用してImage.ResizeWidthProportionally(Int32)メソッドを呼び出します。
- その後、引数として新しい高さを指定してImage.ResizeHeightProportionally(Int32)メソッドを呼び出します。
- 最後に、Save()メソッドを呼び出し、サイズ変更された画像を保存するための引数として出力ファイルのパスを指定します。
次のコードサンプルは、C#を使用してJPEG画像のサイズを比例的に変更する方法を示しています。
// このコード例は、長方形による切り抜きアプローチを使用してJPG画像を切り抜く方法を示しています。
// 既存の画像を読み込む
Image image = Image.Load(@"C:\Files\images\sample.jpg");
// 幅
int new幅 = image.幅 / 2;
image.Resize幅Proportionally(new幅);
// 身長
int new身長 = image.身長 / 2;
image.Resize身長Proportionally(new身長);
// 保存オプションを定義する
JpegOptions saveOptions = new JpegOptions();
saveOptions.Quality = 100;
// 画像を保存する
image.Save(@"C:\Files\images\sample_out.jpg", saveOptions);
無料ライセンスを取得する
無料の一時ライセンスをリクエストして、評価制限なしでAPIを試してください。
結論
この記事では、次の方法を学びました。
- C#でJPEG画像をトリミングします。
- 画像を特定のサイズにトリミングします。
- プログラムでJPEG画像のサイズを変更します。
- JPEG画像のサイズを比例的に変更します。
さらに、ドキュメントを使用して、Aspose.Imaging for.NETAPIの詳細を学ぶことができます。ご不明な点がございましたら、フォーラムまでお気軽にお問い合わせください。