写真の複製

Java Cloud SDKを使用して重複イメージを検索する

JPG 画像は、印刷や編集目的でよく使用される形式です。さらに、インターネット上やモバイル ユーザーと PC ユーザーの間で写真やその他の画像を共有するための一般的な画像形式です。 JPG 画像のファイル サイズは小さいため、小さなメモリ領域に数千の画像を保存できます。圧縮には非可逆圧縮が行われるため、特定の不要な情報が完全に削除されることになります。一方、PNG の JPEG に対する最大の利点は、圧縮が可逆圧縮であることです。つまり、ファイルを開いて再度保存するたびに品質が低下しないことです。 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 の使用中に問題が発生した場合は、無料の 製品サポート フォーラム を通じて迅速な解決のために当社に連絡することを検討してください。

関連記事

詳細については、次のリンクを参照してください。