SVG から PNG へ

SVG を PNG にオンラインで変換 | SVG を PNG に保存

スケーラブル ベクター グラフィックス (SVG) は、Web 用のベクター ベースのグラフィックスを定義します。SVG は、インタラクティブ性とアニメーションをサポートする 2 次元グラフィックス用の XML ベースのベクター画像形式です。この形式は、画像を任意のサイズに拡大縮小できるインターネット上で 2 次元画像をレンダリングするためによく使用されます。ただし、詳細と品質を失わないロスレス圧縮のために SVG を PNG に変換する必要がある場合は、Aspose.Imaging Cloud が有効なソリューションとなります。

この記事では、オンラインで SVG を PNG に変換する方法について詳しく説明します。

画像変換API

Aspose.Imaging Cloud は、画像処理要件に対するプログラミング ソリューションです。画像のサイズ変更、切り取り、回転、拡大縮小、反転、検索、サポートされているさまざまな形式への画像のエクスポートなどの操作を実行できます。ユーザーの利便性をさらに高めるために、プログラミング言語固有の SDK を作成しました。この記事では、Aspose.Imaging Cloud SDK for .NET を使用します。Aspose.Cloud SDK のインストール方法 の詳細については、次のリンクにアクセスしてください。

C# で SVG を PNG に変換する

クラウド ストレージにすでに存在する SVG イメージを PNG 形式に変換するには、以下の手順に従ってください。

  • 最初のステップは、ClientID と ClientSecret の詳細を引数として渡しながら ImagingApi のインスタンスを作成することです。
  • 次に、ImagingApi の UploadFile(..) メソッドを使用して、SVG イメージをクラウド ストレージにアップロードします。
  • 3 番目に、入力 SVG の名前と結果の形式を引数として渡しながら、ConvertImageRequest クラスのインスタンスを作成します。
  • 次に、ConvertImage(..) メソッドを呼び出して変換操作を実行します。結果の PNG は Stream インスタンスとして返されます。
  • 最後に、File.Create を使用してカスタム メソッドを呼び出し、Stream インスタンスをローカル ドライブ上のファイルとして保存します。
// 完全な例については、https://github.com/aspose-imaging-cloud/aspose-imaging-cloud-dotnet をご覧ください。
// https://dashboard.aspose.cloud/ からクライアント資格情報を取得します。
string clientSecret = "d757548a9f2558c39c2feebdf85b4c44";
string clientID = "4db2f826-bf9c-42e7-8b2a-8cbca2d15553";

// DiagramApiのオブジェクトを作成する
ImagingApi imagingApi = new ImagingApi(clientSecret,clientID, "https://api.aspose.cloud/");

// 入力SVGファイルの名前
String inputFileName = "trashloader2.svg";
// 結果のファイル形式
String newFormat = "png";
// 出力ファイル名
String newFileName = "Converted.png";

try
{
    // ローカルドライブからファイルを読み込む
    using (var inputStream = System.IO.File.OpenRead(@"C:\Users\shahbnay\Downloads\" + inputFileName))
    {
        // ファイルアップロードリクエストの作成    
        UploadFileRequest request = new UploadFileRequest(inputFileName, inputStream);
        // デフォルトのクラウドストレージにファイルをアップロードする
        imagingApi.UploadFile(request);
                
        // 画像変換のインスタンスを作成する
        var response = new ConvertImageRequest(inputFileName,newFormat);
        // 画像変換操作を開始する
        var responseStream = imagingApi.ConvertImage(response);
                
        // ストリームインスタンスをローカルストレージにファイルとして保存する
        saveToDisk(responseStream, @"C:\Users\shahbnay\Downloads\" + newFileName);
    }
catch (Exception ex)
{
    Console.WriteLine("error:" + ex.Message + "\n" + ex.StackTrace);
}
        
static void saveToDisk(Stream responseStream, String resultantFile)
{
    var fileStream = File.Create(resultantFile);
    responseStream.Seek(0, SeekOrigin.Begin);
    responseStream.CopyTo(fileStream);
    fileStream.Close();
}

参考までに、上記の例で使用したサンプル画像は、trashloader2.svgおよびConverted.pngからダウンロードできます。

SVGからPNGへの変換プレビュー

画像 1: SVG から PNG への変換プレビュー。

cURL コマンドを使用した SVG から PNG への変換

このセクションでは、cURL コマンドを使用して SVG から PNG への変換を実行します。最初のステップは、クライアントの資格情報に基づいて 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"

次に、次の cURL コマンドを実行して SVG を PNG に変換します。結果は応答ストリームとして返され、ローカル ドライブに保存できます。

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

ゼロインデックスの multipart/form-data コンテンツまたは生のボディ ストリームとして渡された SVG イメージを変換する必要がある場合。

curl -X POST "https://api.aspose.cloud/v3.0/imaging/convert?format=png" \
-H  "accept: application/json" \
-H  "authorization: Bearer <JWT Token>" \
-H  "Content-Type: multipart/form-data" \
-d {"imageData":{}} \
-o Converted.png

結論

Aspose.Imaging Cloud API の画像変換機能について説明しました。特に、C# .NET コード スニペットを使用して SVG を PNG に変換することに焦点を当てました。同時に、cURL コマンドを使用して SVG を PNG に保存する方法についても詳しく説明しました。API は Swagger インターフェイス経由でもアクセスでき、Web ブラウザー内で API をテストできます。ただし、Cloud SDK は MIT ライセンスの下で開発されているため、完全なソース コードは GitHub からダウンロードできます。

API の使用中に問題が発生した場合や、関連する質問がある場合は、無料製品サポート フォーラム からお気軽にお問い合わせください。

関連リンク

詳細については、次のリンクにアクセスすることをお勧めします。