実験記録 No.02

大阪市在住プログラマー。 翻訳とか、物理シミュレーションとかやってます。

SVG形式からPNG形式への画像の変換方法

ベクター形式であるSVG形式の画像ファイルをPNG形式に変換する方法のメモ。Windows 10で確認済み。

数枚の場合はInkscapeを使ってGUIでファイルをインポート・エクスポートすればできるが、大量(数十枚〜)にある場合はコマンドラインでバッチ処理したくなる。

その場合はInkscapeを使ってコマンドラインで変換処理をおこなえる。以下の形式でSVG形式からPNG形式にファイルを変換する。

Inkscape 0.92の場合

>inkscape -z -w (ピクセル単位での幅) -f (SVG画像ファイル) -e (PNG画像ファイル)

例えばSVGファイル MyImage.svg を幅 300px でPNGファイル MyImage.png に変換する場合は以下の様にする。

>inkscape -z -w 300 -f MyImage.svg -e MyImage.png

あとは適当なスクリプトからこのコマンドを実行するだけ。

各オプションの意味は以下の通り

  • -z, --without-gui : InkscapeをGUI無しで実行
  • -w, --export-width=WIDTH : 出力画像の幅をピクセル単位で指定
  • -f, --file=FILENAME : 入力SVGファイル指定
  • -e, --export-png=FILENAME : 出力PNGファイル指定

Inkscape 1.0.2の場合

>inkscape -w (ピクセル単位での幅) -p (SVG画像ファイル) -o (PNG画像ファイル)

例えばSVGファイル MyImage.svg を幅 300px でPNGファイル MyImage.png に変換する場合は以下の様にする。

>inkscape -w 300 -p MyImage.svg -o MyImage.png

あとは適当なスクリプトからこのコマンドを実行するだけ。

各オプションの意味は以下の通り

  • -w, --export-width=WIDTH : 出力画像の幅をピクセル単位で指定
  • -p, --pipe : 入力SVGファイル指定
  • -o, --export-filename=EXPORT-FILENAME : 出力PNGファイル指定

オプションの確認

全オプションを確認したい場合はhelpオプションで可能。メッセージがUnicode化されていてコマンドプロンプトの場合は「chcp 65001」を実行しておかないと文字化けする場合がある。

>chcp 65001
>inkscape --help

参照

Inkscape - オプション一覧

2021/6/10:更新

【2021年版】FreeCAD利用事例まとめ

「FreeCADってどれくらいのことができるの?」という質問をたまにもらうのでTwitterの自分のタイムラインからFreeCADの利用事例に関するものをまとめました。2021年版。

2020年以前の分は【2020年版】FreeCAD利用事例まとめで。







































【日本語訳】盲人国(The Country of the Blind)

盲人国(The Country of the Blind, 1904)
H.G.ウェルズ 著
H.Tsubota 訳
ライセンス:クリエイティブ・コモンズ・ライセンス 表示-非営利-継承 4.0 国際

チンボラソ山から三百マイル以上、コトパクシ山の雪原から百マイル、エクアドルのアンデスの不毛な荒れ地にその謎めいた山あいの谷はある。人間の世界から切り離された盲人の国である。大昔にはこの谷もある程度は世界に向かって開かれていて、人々は恐ろしい渓谷を抜けて凍りついた小道を通り、最後には平らな牧草地へとたどり着いていたはずだ……続きを読む

Snow mountain

訳者あとがき

H.G.ウェルズの「The Country of the Blind」の翻訳。

アンデス山脈の奥地にある村に迷い込んだ男の物語で、ウェルズの短編の中では比較的知名度の高い作品。

この村は数百年前に火山噴火によって外界から完全に切り離されていて、その上、その地域独特の疫病によってそこで生まれる人間は全て盲目である。その結果、視力の存在は忘れ去られ、独自の世界が作り上げられている。

迷い込んだ主人公の目を通して描かれる奇妙な世界が実は現実の世界の風刺であるという点ではスウィフトの「ガリヴァー旅行記」やサミュエル・バトラーの「エレホン」と同じ着想の作品と言えるかもしれない。

視力は想像力(あるいは「センス・オブ・ワンダー」)を意味していること、視力を持たない周囲の人間から白痴扱いされる主人公が最初期のSF作家であるウェルズ自身の分身であることは容易に想像できる。

急速な科学・技術の発展があった20世紀初頭には前世紀的な制度と衝突して同じ様な思いを抱く若者は多かったらしく、例えば、1903年生まれのジョージ・オーウェルはウェルズについて次のように書いている。

一九〇〇年代を振り返れば一人の少年にとってH・G・ウェルズとの出会いはすばらしい経験だった。少年がいるのは杓子定規な人間、聖職者、ゴルファーばかりの世界だ……(中略)……しかしここに他の星々や海底の住人について彼に語ることができ、未来はお行儀の良い人々が想像しているようなものではないと知るすばらしい人間が存在したのだ。(ウェルズ、ヒトラー、世界国家, ジョージ・オーウェル)

(恐らくウェルズの意図を超えたことだろうが)視力という優位性を持ちながら盲人国の社会制度の中では能力を発揮できずに「障害者」扱いされる主人公は「障害の社会モデル」を描き出していると評されることも多い。

【2020年版】FreeCAD利用事例まとめ

「FreeCADってどれくらいのことができるの?」という質問をたまにもらうのでTwitterの自分のタイムラインからFreeCADの利用事例に関するものをまとめました。2020年版。

2019年以前の分は【2019年版】FreeCAD利用事例まとめで。
































































ESI版のOpenFOAM(Windows, Docker)が正常にインストールできない場合の対処法

某案件で動作確認用にESI版のOpenFOAM(Windows, Docker)をインストールしようとしたらうまくいかなかったのでメモ。

環境

  • Windows10
  • ESI版 OpenFOAM v1906 (Windows, Docker)

エラー状況

インストーラー(OpenCFD-OpenFOAM4WindowsInstaller-v1906.exe)を実行後、デスクトップにできたショートカットを「OF_Env_Create」→「OpenFOAM_Start」の順に押すとOpenFOAMを利用できるターミナルが起動するはずが「OF_Env_Create」で

docker: invalid reference format: repository name must be lowercase.
See 'docker run --help'.
exit status 125

というようなエラーが出て、その後「OpenFOAM_Start」を実行してもOpenFOAMを利用できるターミナルが起動せず、「of_1906というdockerイメージが見つからない」といった意味のエラーが表示される。

対応方法

「Taro Yamada」の様にWindowsユーザー名にスペース文字が含まれることが原因。

「C:\Program Files (x86)\ESI\OpenFOAM\v1906\Windows\Scripts\of_create_container.ps1」の1行を以下のように書き換えることで問題を解消できた。

変更前

$ENV:mountedPath="/root/../c/Users/$ENV:username"+":/root/../home/ofuser/workingDir"

変更後

$ENV:mountedPath="/root/../c/Users/Public"+":/root/../home/ofuser/workingDir"

書き換え後、改めて「OF_Env_Create」→「OpenFOAM_Start」の順に実行。

エラー時に中途半端にdockerイメージができていて、イメージ名の重複エラーが起きる場合は「OF_Env_Create」で開くターミナルで「docker ps -a」でコンテナIDを確認し、「docker rm $(コンテナID)」で削除してから再試行。

コメント

今回はWindows,Docker用OpenFOAMに依存する3rdパーティーツールの動作確認をしたくてインストールを試したが、単にWindowsでOpenFOAMを使いたいのであればWSLでOpenFOAMをインストールしたほうが問題が起きにくいと思う。

Twitterタイムライン