はじめに
SVG、PDF、PNGなどの画像形式をEMFやPDF、PNGに変換する作業は、多くのデザイナーやエンジニアにとって欠かせない。
しかし、手動で1つ1つ変換するのは手間がかかり、効率的とは言えない。
そこで今回は、Windows環境でInkscapeを活用し、画像形式の変換を自動化するツールを作成したので紹介する。
このツールを使えば、ドラッグ&ドロップだけで画像形式を指定した形式に一括変換でき、解像度や出力形式も柔軟にカスタマイズ可能だ。
初心者から上級者まで、誰でも簡単に使える設計になっている。
Inkscapeとは?
Inkscape は、無料で使えるオープンソースのベクターグラフィック編集ソフトだ。
主に SVG(Scalable Vector Graphics) の作成や編集に使われるが、その他にもPDF、EPS、AI、PNG、JPGといった形式にも対応している。
Inkscapeの主な特徴は以下の通りである。
- 無料で利用可能:ライセンス費用がかからず、個人・商用利用にも対応。
- 多彩なフォーマット対応:入力も出力も幅広い形式をサポート。
- 高品質なベクター画像編集:プロフェッショナルレベルのデザインにも対応可能。
- クロスプラットフォーム:Windows、Mac、Linuxの主要OSで利用可能。
この記事では、Inkscapeのコマンドライン機能を活用し、画像形式の変換を自動化する方法を解説する。
Inkscapeのインストール方法
Inkscapeを使うには、まずソフトウェアをインストールする必要がある。
以下に手順を説明する。
1. 公式サイトからダウンロード
Inkscape公式サイト にアクセスし、ダウンロードページを開く。
使用するOSに応じて適切なインストーラーを選択する。
2. インストーラーを実行
ダウンロードしたインストーラーを実行し、画面の指示に従ってインストールを進める。
3. コマンドライン機能の確認
インストールが完了したら、コマンドプロンプトで以下を入力し、Inkscapeが正常にインストールされているか確認する。
inkscape --version
バージョン情報が表示されれば準備完了だ。
このツールでできること
作成したツール(ConvertImage.cmd
)は、以下のような機能を備えている。
主な機能
- 一括変換対応:フォルダを指定すれば、その中の画像をすべて一括で変換できる。
- 対応形式が豊富:SVG、PDF、PNG、JPG、EPS、AIなど、多くの形式に対応。
- 出力形式の柔軟性:EMF、PDF、PNGなど、用途に応じて出力形式を選べる。
- 解像度のカスタマイズ:DPI(解像度)を自由に設定可能。
- 進行状況と結果表示:変換の進捗状況をリアルタイムで表示し、成功・失敗を一目で確認できる。
コマンドファイルの作り方
以下は、このツールのコード例だ。
これをメモ帳にコピーして 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
使い方
準備:
- 上記コードを保存した
ConvertImage.cmd
ファイルを用意する。 - Inkscapeが正しくインストールされていることを確認。
- 上記コードを保存した
実行:
- 変換したい画像ファイルまたはフォルダを
ConvertImage.cmd
にドラッグ&ドロップする。 例として、570_markers.svg
ファイルを例としてプログラムを実行する。
- 変換したい画像ファイルまたはフォルダを
確認画面で内容を確認
=== 処理内容 === 変換対象: 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 のコマンドライン機能を活用して画像形式変換を効率化を実現するプログラムのソースコードを紹介した。
一括変換機能や柔軟なカスタマイズ性、簡単な操作性を備え、デザイナーやエンジニアの日常作業を大幅に効率化できる。
この記事を参考に、このツールを試してみてほしい。画像形式変換の手間を大幅に削減し、作業の効率化に貢献するはずだ。