JPGをPNGに変換する

Joint Photographic Experts Group (JPG/JPEG) と Portable Network Graphics (PNG) は、インターネットで使用されている 2 つの一般的なラスター画像形式です。DCT 圧縮に依存する JPEG とは異なり、PNG は GIF および TIFF 形式で使用されるものと同じ LZW 圧縮を使用します。JPEG に対する PNG の最大の利点は、圧縮がロスレスであることです。つまり、開いて再度保存するたびに品質が低下しません。PNG は、詳細でコントラストの高い画像も適切に処理します。この記事では、.NET REST API を使用して JPG 画像を PNG 形式に変換する手順について説明します。

画像処理API

Aspose.Imaging Cloud は、画像形式処理における当社の主力製品の 1 つです。既存の画像形式をトリミング、反転、拡大縮小、回転、検索、変換し、サポートされているファイル形式 にエクスポートできます。REST アーキテクチャにより、開発者はクラウドベースのソリューションにさまざまな画像処理機能を実装できます。さらにお客様の利便性を高めるために、Aspose.Imaging REST API をベースに Aspose.Imaging Cloud SDK for .NET を開発しました。これにより、C# .NET アプリケーション内で高度な画像処理をすべて実行できます。

インストール

SDK を使用するには、まずシステムにインストールする必要があります。NuGet および GitHub からダウンロードできます。NuGet 経由で SDK をインストールするには、ターミナルで次のコマンドを実行してください。

nuget install Aspose.Imaging-Cloud

または、NuGet パッケージ マネージャーで次のコマンドを実行します。

PM> Install-Package Aspose.Imaging-Cloud

Visual Studio アプローチ

もう 1 つの方法は、Visual Studio 内で直接インストールすることです。

  1. ソリューション エクスプローラーを開きます。
  2. プロジェクトを展開し、ソリューション内のパッケージ フォルダーを右クリックします。
  3. NuGetパッケージの管理オプションを選択します
  4. [参照] タブをクリックし、「Aspose.Imaging-Cloud」を検索します。
  5. Aspose.Imaging-Cloud パッケージの横にあるチェックボックスをクリックし、右側のタブで適切なバージョンを選択して、「パッケージの追加」ボタンをクリックします。
Aspose.Imagingクラウド

画像 1:- NuGet パッケージとしての Aspose.Imaging-Cloud。

Aspose.Cloud サブスクリプション

弊社のすべての API は、データの整合性とプライバシーが維持されるように、承認された人物のみがアクセスできます。さらに、クラウド ストレージに保存されたファイルは、Aspose.Cloud ダッシュボード でサブスクライブしたアカウントに関連付けられています。したがって、最初のステップは、Aspose.Cloud ダッシュボード にアクセスして無料のサブスクリプション アカウントを作成することです。GitHub または Google アカウントをお持ちの場合は、サインアップするだけです。そうでない場合は、新しいアカウントの作成 ボタンをクリックして、必要な情報を入力します。次に、資格情報を使用してダッシュボードにログインし、ダッシュボードからアプリケーション セクションを展開して、クライアント資格情報セクションまで下にスクロールし、クライアント ID とクライアント シークレットの詳細を確認します。

クライアントの資格情報

画像 2: Aspose.Cloud ダッシュボードのクライアント資格情報。

C# で JPG を PNG に変換する

C# .NETアプリケーション内でJPG形式をPNGに変換するには、以下の手順に従ってください。

  • クライアントIDとクライアントシークレットの詳細を引数として渡しながらImagingApiオブジェクトを作成します。
  • 次に、ローカルドライブからJPEG画像を読み取り、それをUploadFileRequestオブジェクトの引数として渡します。
  • 3番目に、ImagingApiのUploadFile(…)メソッドを呼び出して、ファイルをクラウドストレージにアップロードします。
  • 次に、画像名と結果の出力形式を引数として受け取るConvertImageRequestクラスのインスタンスを作成します。
  • 次に、ImagingApiクラスのConvertImage(…)メソッドを呼び出して変換操作を開始します。
  • 最後に、File.Create を使用してストリームからの出力をローカル ドライブに保存します (カスタム メソッドは以下で共有されます)。
// https://dashboard.aspose.cloud/ から ClientID を取得します。
string clientSecret = "caac6e3d4a4724b2feb53f4e460eade3";
string clientID = "4ccf1790-accc-41e9-8d18-a78dbb2ed1aa";

// ImagingApiのインスタンスを作成する
ImagingApi imagingApi= new ImagingApi( clientSecret,clientID,"https://api.aspose.cloud/");

// 入力JPEG画像のパス
string imageFile = "jpg-to-png.jpeg";
 
// 出力ファイル形式
string format = "png";
 
// 結果のファイル名
string resultantFile = "converted.png";

// ローカルドライブからファイルを読み込む
using (var file = System.IO.File.OpenRead("/Users/nshahbaz/Desktop/" + imageFile))
{
    var uploadFileRequest = new UploadFileRequest(imageFile, file);

    // 元の文書をクラウドストレージにアップロードする
    imagingApi.UploadFile(uploadFileRequest);
}

try
{
    // イメージリクエストの作成
    var request = new ConvertImageRequest(imageFile, format, null, null);
    
    // 変換操作を開始する
    Stream updatedImage = imagingApi.ConvertImage(request);

    // 変換が成功した場合は成功メッセージを出力します
    if (request != null && request.Equals("OK"))
    {
        Console.WriteLine("JPG successfully converted to PNG !");
        Console.ReadKey();
    }
    
    // システムドライブに出力を保存するメソッドを呼び出す
    saveToDisk(updatedImage, "/Users/nshahbaz/Desktop/"+resultantFile);
}
catch (Exception ex)
{
    Console.WriteLine("error:" + ex.Message + "\n" + ex.StackTrace);
}  

// Steam オブジェクトをファイルインスタンスとして保存するカスタムメソッド
public static void saveToDisk(Stream responseStream, String resultantFile)
{
    var fileStream = File.Create(resultantFile);
    responseStream.Seek(0, SeekOrigin.Begin);
    responseStream.CopyTo(fileStream);
    fileStream.Close();
}

JPEG から PNG への変換のための cURL コマンド

クラウド API の REST アーキテクチャにより、コマンド ライン ターミナルからもアクセスできます。ただし、セキュリティ上の制限により、最初に Aspose.Cloud ダッシュボード から取得した ClientID と ClientSecret の詳細に基づいて JSON Web トークン (JWT) を生成する必要があります。ターミナルで次のコマンドを実行して、JWT トークンを生成してください。

curl -v "https://api.aspose.cloud/connect/token" \
-X POST \
-d "grant_type=client_credentials&client_id=4ccf1790-accc-41e9-8d18-a78dbb2ed1aa&client_secret=caac6e3d4a4724b2feb53f4e460eade3" \
-H "Content-Type: application/x-www-form-urlencoded" \
-H "Accept: application/json"

JWTトークンを取得したら、次のステップはConvertImage APIを呼び出してJPGからPNGへの変換操作を実行することです。

curl -X GET "https://api.aspose.cloud/v3.0/imaging/jpg-to-png.jpeg/convert?format=png" \
-H  "accept: application/json" \
-H  "authorization: Bearer <JWT Token>" \
-o  converted.png

リクエストURL

https://api.aspose.cloud/v3.0/imaging/jpg-to-png.jpeg/convert?format=png

結論

JPEG イメージを PNG 形式に変換するには、Aspose.Imaging Cloud API を利用しました。C# .NET コードを使用したファイル変換のプロセスと、cURL コマンドを使用した変換について学習しました。また、Cloud SDK は MIT ライセンスで配布されており、完全なソース コードは GitHub からダウンロードできます。API の使用中に問題が発生した場合や質問がある場合は、無料製品サポート フォーラム からお気軽にお問い合わせください。

関連記事

さらに詳しく知りたい場合は、以下のリンクもご覧ください。