備忘録
備忘録
学びと解説
学びと解説
Python
Python
Linux
Linux

記事内に商品プロモーションを含む場合があります。

InkscapeでSVG画像を簡単にEMF画像へ変換するツールの紹介

はじめに

SVG、PDF、PNGなどの画像形式をEMFやPDF、PNGに変換する作業は、多くのデザイナーやエンジニアにとって欠かせない。
しかし、手動で1つ1つ変換するのは手間がかかり、効率的とは言えない。
そこで今回は、Windows環境でInkscapeを活用し、画像形式の変換を自動化するツールを作成したので紹介する。

このツールを使えば、ドラッグ&ドロップだけで画像形式を指定した形式に一括変換でき、解像度や出力形式も柔軟にカスタマイズ可能だ。
初心者から上級者まで、誰でも簡単に使える設計になっている。

Inkscapeとは?

Inkscape は、無料で使えるオープンソースベクターグラフィック編集ソフトだ。
主に SVG(Scalable Vector Graphics) の作成や編集に使われるが、その他にもPDF、EPS、AI、PNG、JPGといった形式にも対応している。

Inkscapeの主な特徴は以下の通りである。

  • 無料で利用可能:ライセンス費用がかからず、個人・商用利用にも対応。
  • 多彩なフォーマット対応:入力も出力も幅広い形式をサポート。
  • 高品質なベクター画像編集:プロフェッショナルレベルのデザインにも対応可能。
  • クロスプラットフォームWindowsMacLinuxの主要OSで利用可能。

この記事では、Inkscapeコマンドライン機能を活用し、画像形式の変換を自動化する方法を解説する。

Inkscapeのインストール方法

Inkscapeを使うには、まずソフトウェアをインストールする必要がある。
以下に手順を説明する。

1. 公式サイトからダウンロード

Inkscape公式サイト にアクセスし、ダウンロードページを開く。
使用するOSに応じて適切なインストーラーを選択する。

2. インストーラーを実行

ダウンロードしたインストーラーを実行し、画面の指示に従ってインストールを進める。

3. コマンドライン機能の確認

インストールが完了したら、コマンドプロンプトで以下を入力し、Inkscapeが正常にインストールされているか確認する。

inkscape --version

バージョン情報が表示されれば準備完了だ。

このツールでできること

作成したツール(ConvertImage.cmd)は、以下のような機能を備えている。

主な機能

  1. 一括変換対応:フォルダを指定すれば、その中の画像をすべて一括で変換できる。
  2. 対応形式が豊富SVG、PDF、PNG、JPG、EPS、AIなど、多くの形式に対応。
  3. 出力形式の柔軟性:EMF、PDF、PNGなど、用途に応じて出力形式を選べる。
  4. 解像度のカスタマイズ:DPI(解像度)を自由に設定可能。
  5. 進行状況と結果表示:変換の進捗状況をリアルタイムで表示し、成功・失敗を一目で確認できる。

コマンドファイルの作り方

以下は、このツールのコード例だ。
これをメモ帳にコピーして ConvertImage.cmd という名前で保存するだけでツールが完成する。

@echo off
rem === 初期設定 ===
set inkscape1="%ProgramFiles%\Inkscape\bin\inkscape.com"

rem 出力する画像の解像度(DPI)の指定
set dpi=300

rem 出力形式の指定
rem emf、png、pdf、svgなどの出力形式に対応
set format=emf

rem 入力確認
if "%~1"=="" (
    echo エラー: 画像ファイルまたはフォルダを指定してください。
    echo 使用方法: ConvertImage.cmd [画像ファイルまたはフォルダのパス]
    pause
    exit /b 1
)
set inputPath=%~1

rem 処理内容の確認
cls
echo === 処理内容 ===
echo 変換対象: %inputPath%
echo 出力先: 入力ファイルと同じディレクトリ
echo 解像度: %dpi%
echo 出力形式: %format%
echo =================
set /p confirm="上記設定で実行しますか? (Y/N): "
if /i not "%confirm%"=="Y" (
    echo 処理をキャンセルしました。
    pause
    exit /b 0
)

rem 変換開始
cls
set count=0
set success=0
set failed=0

if exist "%inputPath%\*" (
    for %%f in ("%inputPath%\*.svg" "%inputPath%\*.pdf" "%inputPath%\*.png" "%inputPath%\*.jpg") do call :ConvertFile "%%f"
) else (
    call :ConvertFile "%inputPath%"
)

rem 結果表示
echo 処理が完了しました。
echo 処理対象ファイル数: %count%
echo 成功: %success%
echo 失敗: %failed%
pause
exit /b 0

:ConvertFile
set /a count+=1
set inputFile=%~1
set inputDir=%~dp1
set fileName=%~n1
set outputFile=%inputDir%%fileName%.%format%

echo [%count%] 処理中: %inputFile%
%inkscape1% --export-filename="%outputFile%" --export-dpi=%dpi% "%inputFile%"
if exist "%outputFile%" (
    echo [%count%] 成功: %outputFile%
    set /a success+=1
) else (
    echo [%count%] 失敗: %inputFile%
    set /a failed+=1
)
goto :eof

使い方

  1. 準備

    • 上記コードを保存した ConvertImage.cmd ファイルを用意する。
    • Inkscapeが正しくインストールされていることを確認。
  2. 実行

    • 変換したい画像ファイルまたはフォルダを ConvertImage.cmd にドラッグ&ドロップする。 例として、570_markers.svg ファイルを例としてプログラムを実行する。
  3. 確認画面で内容を確認

=== 処理内容 ===
変換対象: C:\path\to\example.svg
出力先: 入力ファイルと同じディレクトリ
解像度: 300
出力形式: emf
=================
上記設定で実行しますか? (Y/N):

Y を入力して変換を実行。

変換を開始します...
[1] 処理中: C:\Users\user\Desktop\570_markers.svg
[1] 成功: C:\Users\user\Desktop\570_markers.emf
処理が完了しました。
処理対象ファイル数: 1
成功: 1
失敗: 0
続行するには何かキーを押してください . . .

処理が完了後、570_markers.emfが出力されていることを確認。

オプション

ConvertImage.cmdの以下のコードを修正することで、画像の変換形式、解像度を用途別に対応することができる。 set dpi=300 set format=emf

まとめ

Inkscapeコマンドライン機能を活用して画像形式変換を効率化を実現するプログラムのソースコードを紹介した。
一括変換機能や柔軟なカスタマイズ性、簡単な操作性を備え、デザイナーやエンジニアの日常作業を大幅に効率化できる。

この記事を参考に、このツールを試してみてほしい。画像形式変換の手間を大幅に削減し、作業の効率化に貢献するはずだ。

GitHubのリンク

github.com