仕事柄、写真の撮影を頻繁に行うのですが効率化のため、スマートフォンやカメラで撮影した画像をPCの取り込むのではなくPCでウェブカメラを使用して撮影を行っています。

私が必要な写真は正方形で高解像度のものになるのですがPCでウェブカメラを使用した撮影用のアプリはどうしても縦横比などはカメラに依存する事が多くいろいろ試した結果、OBSを使用してスクリーンショットを撮るという方法に落ち着きました。

本来の使い方とは異なるものの撮影画像の縦横比は自由にイジれるし、解像度も問題ないし、露出やコントラスト、色味の設定なども行えて便利この上ないのですがそもそも画像を撮影するソフトではないので弱点があります。

それは圧縮形式が選択できず、pngでしか出力できないことです。

そもそもOBSの使用用途は動画配信や動画撮影が真骨頂なため、操作や設定をややこしくしないため余計な機能をつけないと言う意味で設定できないようにしているのだと思います。

 

私が必要なのはjpg画像なので、設定さえできれば不要なはずの作業が発生してしまいます。

撮影→pngからjpgに変換→アップロード

この変換の作業をしばらくの間、フリーソフトの「XnConvert」を使用していました。

このアプリにファイルをドラッグアンドドロップして変換ボタンを押すというのものでした。

簡単なようで何十、何百と繰り返すとかなりの手間に思えてきました。

 

そこでバッチ処理やVBSの実行で何とかできないかと思い立ちました。

始めから思いついておけばと思いましたがね。

 

ちなみにバッチ処理やVBSってのはWindowsのコマンドプロンプトやそれに似たものを利用してしており、

「デスクトップなどに作ったファイルをダブルクリックして実行するだけで処理を行える」ものです。

 

それで私がやりたかった事は次の内容になります。

指定したフォルダの中のpng形式のファイルを全てjpgに変換し、残った元のpngファイルは全て削除する。

コードレベルで言うと

  1. 入力フォルダの指定(pngファイルがあるフォルダ)
  2. 出力フォルダの指定(新しいjpgファイルを出力するフォルダ)
  3. pngファイルをjpgに変換して出力
  4. 入力フォルダのpngファイルを削除

と至極簡単な流れになります。

 

これを実行するにあたり画像処理ライブラリが必要になりますのでGraphicsMagickをインストールします。

インストール方法、他サイトで詳しく解説している方がいましたのでご参考下さい。

https://shuu1104.com/2021/04/3178/

ダウンロードして実行してNEXTをポチポチするだけです。

 

それでは実際にバッチファイルの作り方は下記のようになります。

まずは適当なフォルダに新しいテキストファイルを作成します。

メモ帳で開き内容は下記を入れてください。

@echo off

set folder=
set outputFolder=

for %%f in (%folder%\*.png) do (
gm convert “%%f” “%outputFolder%\%%~nf.jpg”
del “%%f”
)

 

set folder=
set outputFolder=

の二行は編集します。

 

set folder=にはjpgに変換したいpngが入っているフォルダを指定してください。

例えば

set folder=C:\Users\username\デスクトップ

のような感じです。

 

set outputFolder=にはjpgファイルを出力したいフォルダを指定します。

同じフォルダに出力したい場合は上記と同じフォルダを指定します。

例えば

set outputFolder=C:\Users\username\デスクトップ

のように。

 

そして名前を付けて保存、ファイル名は「pngtojpgconvert.bat」とでもしておいてください。

拡張子のbatさえ合っていれば実行は可能です。

 

保存したbatファイルを実行すると指定したフォルダのpngファイルがjpgに変更されます。

以上、作業効率化のためのbatファイルの作成でした。