
Java Cloud SDK を使用して重複する画像を見つける
JPG 画像は、印刷および編集目的で一般的な形式です。さらに、インターネット上やモバイル ユーザーと PC ユーザーの間で写真やその他の画像を共有するための一般的な画像形式です。 JPG 画像はファイル サイズが小さいため、小さなメモリ スペースに何千もの画像を保存できます。圧縮は不可逆であるため、特定の不要な情報が完全に削除されることを意味します。一方、JPEG に対する PNG の最大の利点は、圧縮がロスレスであることです。つまり、開いて再度保存するたびに品質が低下することはありません。 PNG は、詳細でコントラストの高い画像も適切に処理します。この記事では、Java Cloud SDK を使用して JPG を PNG に変換する方法について詳しく説明します。
画像変換 API
当社の REST ベースの API は、画像ファイルを作成、編集、およびさまざまな サポートされているファイル形式 に変換する機能を提供します。 Java アプリケーションで jpg を透過的な png にロードして変換する機能を実装するには、Cloud API のラッパーである Aspose.Imaging Cloud SDK for Java を使用する必要があります。したがって、次のステップは、maven ビルド タイプ プロジェクトの pom.xml に次の情報を含めて、Java プロジェクトにその参照を追加することです。
<repositories>
<repository>
<id>aspose-cloud</id>
<name>artifact.aspose-cloud-releases</name>
<url>http://artifact.aspose.cloud/repo</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>com.aspose</groupId>
<artifactId>aspose-imaging-cloud</artifactId>
<version>22.4</version>
</dependency>
</dependencies>
JDK 参照がプロジェクトに追加されたら、次の重要なステップは Aspose Cloud Dashboard で無料アカウントを作成することです。有効なメールアドレスから無料トライアルにサインアップするだけです。新しく作成したアカウントを使用してログインし、クラウド ダッシュボード でクライアント ID とクライアント シークレットを検索/作成します。これらの詳細は、以降のセクションで認証を行うために必要です。
JavaでJPGをPNGに変換
次に、Java コード スニペットを使用して JPG を PNG に変換する方法の詳細について説明します。変換を実行するために、画像を別の形式に変換するための 2 つの API があります。
GET API では、最初に画像を Cloud Storage にアップロードしてから、その名前を API URL に渡す必要があります。画像パラメーターを更新した後、API は応答で更新された画像を返します。更新されたイメージをクラウド ストレージに保存する場合は、以下の例に示すように、明示的にこれを行う必要があります。
一方、2 番目の POST API を呼び出す場合は、リクエスト ボディで画像を直接渡すことができます。また、outPath パラメータ値を指定して、更新されたイメージを Cloud Storage に保存することもできます。ただし、値を指定しない場合、応答にはストリーミングされた画像が含まれます。
- パーソナライズされたクライアント資格情報に基づいて ImagingApi のインスタンスを作成します
- File[] オブジェクトを使用してローカル フォルダーからすべての JPG ファイルを読み取る
- 配列内のファイルを反復処理し、個々の画像のコンテンツを byte[] インスタンスに到達させます
- ここで、出力画像形式を PNG として指定する CreateConvertedImageRequest のオブジェクトを作成します。
- JPG を PNG として保存し、結果を応答ストリームとして返すメソッド createConvertedImage(…) を呼び出します。
- 最後に、FileOutputStream オブジェクトを使用して PNG ファイルをローカル ドライブに保存します。
// https://dashboard.aspose.cloud/ から ClientID と ClientSecret を取得します。
String clientId = "7ef10407-c1b7-43bd-9603-5ea9c6db83cd";
String clientSecret = "ba7cc4dc0c0478d7b508dd8ffa029845";
// イメージング オブジェクトの作成
ImagingApi imageApi = new ImagingApi(clientSecret, clientId);
File directory = new File("/Users/");
//フォルダからすべてのファイルを取得します
File[] allFiles = directory.listFiles();
if (allFiles == null || allFiles.length == 0) {
throw new RuntimeException("No files present in the directory: " + directory.getAbsolutePath());
}
//ここで必要な画像拡張子を設定します。
List<String> supportedImageExtensions = Arrays.asList("jpg","jpeg");
int counter =0;
//フィルタリングされた JPG 画像ファイルのリスト
List<File> acceptedImages = new ArrayList<>();
// ローカル フォルダーから読み取った各画像ファイルを反復処理する
for (File file : allFiles) {
//ファイル拡張子を解析する
String fileExtension = file.getName().substring(file.getName().lastIndexOf(".") + 1);
//拡張機能が supportedImageExtensions にリストされているかどうかを確認します
if (supportedImageExtensions.stream().anyMatch(fileExtension::equalsIgnoreCase)) {
//フィルタリングされたリストに画像を追加します
acceptedImages.add(file);
// JPG 画像コンテンツの読み取り
byte[] bytes = Files.readAllBytes(acceptedImages.get(counter).toPath());
// 結果の形式が PNG の画像変換要求を作成する
CreateConvertedImageRequest request = new CreateConvertedImageRequest(bytes, "PNG", null, null);
// JPG を PNG に変換し、結果のファイルを応答ストリームで返す
byte[] exportedImage = imageApi.createConvertedImage(request);
// エクスポートした画像をローカル ストレージに保存する
FileOutputStream fos = new FileOutputStream(directory + "/"+file.getName().replaceFirst("[.][^.]+$", "")+".png");
fos.write(exportedImage);
fos.close();
}
}
cURL コマンドを使用して JPG を PNG に変更する
cURL コマンドを使用して REST API にアクセスできるため、このセクションでは、JPG を透明な PNG に変換するための詳細を調べます。前提条件として、次のコマンドを実行する際に、最初に JWT アクセス トークンを (クライアント資格情報に基づいて) 生成する必要があります。
curl -v "https://api.aspose.cloud/connect/token" \
-X POST \
-d "grant_type=client_credentials&client_id=bb959721-5780-4be6-be35-ff5c3a6aa4a2&client_secret=4d84d5f6584160cbd91dba1fe145db14" \
-H "Content-Type: application/x-www-form-urlencoded" \
-H "Accept: application/json"
ここで、ConvertImage API 呼び出しを使用します。これは、入力 JPG がクラウド ストレージで既に利用可能であると想定しています。次のコマンドを実行して、JPG を PNG に変更します。
curl -v -X GET "https://api.aspose.cloud/v3.0/imaging/image1.jpg/convert?format=PNG" \
-H "accept: application/json" \
-H "authorization: Bearer <JWT Token>" \
-o Converted.png
結論
この記事では、Java コード スニペットを使用して JPG を PNG に変換する方法について、驚くべき詳細を説明しました。同様に、cURL コマンドを使用して JPG を PNG 透過に変換する手順についても説明しました。 製品ドキュメント は、API によって提供されるその他のエキサイティングな機能について学ぶための 1 つの素晴らしい場所です。ブラウザ内でこれらの API を試す必要がある場合は、swagger API リファレンス を使用してみてください。
最後から 2 番目に、すべての Cloud SDK は MIT ライセンスの下で公開されていることに注意してください。そのため、GitHub から完全なソース コードをダウンロードし、必要に応じて変更することを検討してください。最後に、API の使用中に問題が発生した場合は、無料の 製品サポート フォーラム から迅速な解決策を得ることができます。
関連記事
詳細については、次のリンクを参照してください。