Javaで画像をトリミング

Zeeshan Afridi 2024年2月15日
  1. BufferedImage クラスを使用して Java で画像をトリミングする
  2. まとめ
Javaで画像をトリミング

画像のトリミングは、画像から目障りな部分を削除するためによく使用されます。 画像をトリミングして、フレーム内の特定のオブジェクトに注目を集めることができます。この記事では、Java でプログラムを使用して写真をトリミングする方法を説明します。

有料ツールには多くの用途があり、時間を節約できますが、数日で作成できる場合は、常に試してみる価値があります. この投稿は主に、サードパーティの高価なツールを避けることでお金を節約できる初心者向けです。 BufferedImage クラスの subimage 関数を使用して、Java で画像をトリミングします。

BufferedImage クラスを使用して Java で画像をトリミングする

これらの例を作成するとき、BufferedImage クラスが考慮されました。

BufferedImage クラスの getSubimage() メソッドの構文:

public BufferedImage getSubimage(int X, int Y, int width, int height)

このコードは、過去の入力によって決定される矩形領域を持つサブイメージを返します。 以下は、4つのパラメーターの説明です。

パラメーター 説明
X 選択した長方形領域の左上隅の x 座標を提供します。
Y 左上隅の指定された長方形領域の y 座標を提供します。
Height 長方形領域の高さを指定します。
Width 長方形領域の幅を定義します。

以下は、トリミングする画像です。

元画像

コード例:

import java.awt.Image;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
public class Main {
  public static void main(String[] args) {
    File imageFile = new File("/D:/test/image.jpg");
    BufferedImage bufferedImage = null;
    try {
      bufferedImage = ImageIO.read(imageFile);
      BufferedImage image = bufferedImage.getSubimage(0, 0, 50, 50);
      File pathFile = new File("/D:/test/image-crop.jpg");
      ImageIO.write(image, "jpg", pathFile);
    } catch (IOException e) {
      System.out.println(e);
    }
  }
}

出力:

Javaで画像をトリミング

私は 10 行目と 16 行目で私のものを提供しましたが、ファイルの場所を提供する必要があることに注意してください。 さらに、実行時にユーザーが XYwidth、および height の値を指定できるようにして、コードの柔軟性を高めることができます。

ここでは、別の例を探しています。画像をトリミングするには、Java でいくつかのクラスが必要です。 以下は、Java で画像をトリミングする前にインポートする必要があるクラスです。

画像ファイルを読み書きするには、File クラスをインポートする必要があります。 このクラスは通常、ファイルとディレクトリのパス名を表します。

Import java.io.File

IOException クラスは、エラーを処理するために使用されます。

Import java.io.IOException

BufferedImage クラスを使用して、画像を保持する BufferedImage オブジェクトを作成します。

import java.awt.image.BufferedImage

ImageIO クラスをインポートして、画像に対して 読み書き 操作を実行します。 このクラスでは、静止画像の読み取りと書き込みのテクニックを利用できます。

import javax.imageio.ImageIO

BufferedImage クラスの組み込みメソッドのいくつかを使用します。

// importing the necessary packages
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;

// Main class
public class GFG {
  // Main driver method
  public static void main(String[] args) {
    // Using a try block, look for exceptions
    try {
      // Reading the original image from the local path by
      // creating an object of BufferedImage class
      BufferedImage originalImg = ImageIO.read(new File("D:/test/Image.jpeg"));

      // Fetching and printing alongside the
      // dimensions of original image using getWidth()
      // and getHeight() methods
      System.out.println(
          "Original Image Dimension: " + originalImg.getWidth() + "x" + originalImg.getHeight());

      // Creating a subimage of given dimensions
      BufferedImage SubImg = originalImg.getSubimage(50, 50, 50, 50);

      // Printing Dimensions of the new image created
      System.out.println(
          "Cropped Image Dimension: " + SubImg.getWidth() + "x" + SubImg.getHeight());

      // Creating a new file for the cropped image by
      // creating an object of the File class
      File outputfile = new File("D:/test/ImageCropped.jpeg");

      // Writing image in the new file created
      ImageIO.write(SubImg, "png", outputfile);

      // Display message on console representing
      // proper execution of program
      System.out.println("Cropped Image created successfully");
    }

    // Catch block to handle the exceptions
    catch (IOException e) {
      // Print the exception along with the line number
      // using printStackTrace() method
      e.printStackTrace();
    }
  }
}

さらに、プログラムの実行後、コンソールには、実行されたメッセージと、指定されたパスに新しく作成されたトリミングされた画像が表示されます。

まとめ

Java で画像をトリミングする方法を明確に理解しました。 長方形の領域が過去の入力によって決定される画像をいくつかの異なるメソッドでトリミングする方法と、BufferedImage クラスとその他の組み込みメソッドを使用して Java で画像をトリミングする方法を示しました。

さらに、ドキュメンテーションを使用して、Java 画像のクロッピングについて詳しく知ることができます。 このページを読んだあなたは、おそらく画像のトリミングが何であるかを知っているでしょう。

これは、フレームを改善したり、縦横比を変更したりするために、画像の外側部分を単純に削除することです。これで、指定された Java コードを使用して非常に迅速に行うことができます。

著者: Zeeshan Afridi
Zeeshan Afridi avatar Zeeshan Afridi avatar

Zeeshan is a detail oriented software engineer that helps companies and individuals make their lives and easier with software solutions.

LinkedIn