💻

ポメラのスクリーンショット(BMP)をドラッグアンドドロップでPNGに変換する

2022/08/21に公開

LOVOTとポメラDM250

1. 概要

発売日の 2022 年 7 月 29 日にポメラ DM250 WHITEを買って使い始めています。

ポメラにはスクリーンショットの機能があり,ショートカットキー(CTRL + SHIFT + 3)を押すと SD カードに BMP ファイルとして保存されます。

スクリーンショット

このスクリーンショットをよく Gyazo に置いたり Twitter に投稿するのですが,Gyazo や Twitter は BMP ファイルをサポートしていないため,サポートしている画像形式に変換する必要があります。

https://twitter.com/saitotetsuya/status/1552994923062120448

変換するにはいろんな方法があると思いますが(今までは GIMPPhotoshop で読み込んで変換して保存していた),私は Windows 環境で生活をしているため,画像変換に対してプログラムやライブラリの追加が必要がなく,てっとり早く使える PowerShell を使って変換をある程度自動化することにしました。

2. 要件

Gyazo に置いたり Twitter に投稿することが主目的であるため,以下の前提条件の下,必要な仕様を満たすことを考えました。

2.1 前提条件

  • Windows 11 環境の PowerShell 5.1 で実装する
  • ポメラは PC リンク機能を使って PC に USB ケーブルで接続する
  • スクリーンショットの BMP が保存されているポメラの SD カードは Windows 上で E:ドライブとして扱える

2.2 要求仕様

  • BMP ファイルを複数選択してドラックアンドドロップして変換する
  • Gyazo や Twitter がサポートしている PNG ファイルに変換する
  • 変換した PNG ファイルはデスクトップ上に置く

3. インストール方法

以下の PowerShell のコードをpomera-image-converter.ps1として適当な場所に保存します。ここでは,C:\home\saito\binに保存したものとします。

pomera-image-converter.ps1
Add-Type -AssemblyName System.Drawing
$target = [System.Environment]::GetFolderPath("Desktop")
foreach ($arg in $args) {
    $src = [System.Drawing.Image]::FromFile($arg)
    $filename = [System.IO.Path]::GetFileNameWithoutExtension($arg) + ".png"
    $dest = Join-Path $target $filename
    $src.Save($dest, [System.Drawing.Imaging.ImageFormat]::Png)
}

BMP ファイルを複数選択してドラックアンドドロップで PowerShell スクリプトに渡すには,ショートカットを利用します。

まず,デスクトップにショートカットを新規作成します。

項目の選択

ショートカットの作成ダイアログが表示されたら,項目の場所に以下を入力します。

C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -ExecutionPolicy RemoteSigned -File C:\home\saito\bin\pomera-image-converter.ps1

ショートカットの名前を指定します。ここでは「ポメラ画像変換」にしています。

ショートカット名の指定

デスクトップに「ポメラ画像変換」というショートカットが作成されました。

ショートカット

4. 変換方法

  1. ポメラを PC に接続し,ポメラのツールメニューから PC リンクを選択して PC リンクにします。
  2. E:ドライブに見えているポメラの SD カードから変換したい BMP ファイルを選択し,「ポメラ画像変換」ショートカットにドラックアンドドロップします。
  3. デスクトップ上に変換された PNG ファイルが保存されます。

5. おわりに

もっと良いやり方があれば是非教えてください!

Discussion