クリップボード上の画像を簡単に保存する方法

スポンサーリンク
このブログではアフィリエイト広告を利用しています。

Windowsで画像を保存したい場合は、スクリーンショットを使用する方法や、右クリックで表示されるメニューから「画像をコピー」等があります。

ですが、中にはクリップボードに保存されただけで、画像をファイルとして保存するには「ペイント」等のツールでペーストして保存する必要がある場合があります。

いちいちツールにペーストすることが面倒という場合のために、簡単に保存する方法の1つを紹介します。

スポンサーリンク

クリップボード上の画像を簡単に保存する方法

クリップボード上の画像を簡単に保存するにはPowerShellのスクリプトを使用します。最初の準備が多少手間ですが、1度用意しておけば後は簡単に実行することができます。

PowerShellのスクリプトを作成する

メモ帳等のテキストエディターに以下の内容をコピーし、拡張子は「.ps1」で保存してください。ファイル名は任意で問題ありません。

※この時に「$FilePath」に日本語が含まれる場合は、「エンコード」部分をかならず「ANSI」に変更してから保存してください。

Add-Type -AssemblyName System.Windows.Forms

If ([Windows.Forms.Clipboard]::ContainsImage() -eq $True) {
  $Image = [Windows.Forms.Clipboard]::GetImage()
  $FilePath = "C:\Users\[ユーザー名]\Desktop"
  $FileName = (Get-Date -Format "yyyyMMddHHmmss") + ".png"
  $ImagePath = Join-Path $FilePath $FileName
  $Image.Save($ImagePath, [System.Drawing.Imaging.ImageFormat]::Png)
}

「$FilePath」はファイルを保存するフォルダーです。黄色下線部分は画像を保存したいフォルダーへ自由に変更してください。

「$FileName」は保存するファイル名です。上書きしたりエラーにならないように"年月日時分秒"で保存するように指定しています。

また、記載したスクリプトは「PNG形式」で保存するスクリプトです。その他の形式で保存することもできます。その場合は、赤下線の部分をそれぞれ以下のように変更してください。

JPEG形式で保存する場合)

----------------
  $FileName = (Get-Date -Format "yyyyMMddHHmmss") + ".jpg"
----------------
  $Image.Save($ImagePath, [System.Drawing.Imaging.ImageFormat]::Jpeg)
}

TIFF形式で保存する場合)

----------------
  $FileName = (Get-Date -Format "yyyyMMddHHmmss") + ".tiff"
----------------
  $Image.Save($ImagePath, [System.Drawing.Imaging.ImageFormat]::Tiff)
}

BMP形式で保存する場合)

----------------
  $FileName = (Get-Date -Format "yyyyMMddHHmmss") + ".bmp"
----------------
  $Image.Save($ImagePath, [System.Drawing.Imaging.ImageFormat]::Bmp)
}

スクリプトを実行するための準備

スクリプトファイルの準備できましたが、このままでは使い勝手が悪いためショートカットを用意します。「項目の場所を入力してください(リンク先)」を以下の内容でショートカットを作成してください。

powershell -ExecutionPolicy RemoteSigned -windowstyle hidden -File [作成したスクリプトファイルのフルパス]

ショートカットの作り方がわからない場合は以下の記事をご覧ください。

スポンサーリンク

スクリプトファイルの使い方

スクリプトファイルを実行するには、作成したショートカットをダブルクリックするだけです。

スクリプトを実行する画像

クリップボードに画像が保存されている状態でショートカットをダブルクリックすると、スクリプトに指定したフォルダーに画像が保存されます。

クリップボード上の画像がファイルに保存された画像

コメント

  1. とおりすがり より:

    大変助かりました。本当にわかり良くまとめられていて助かりました。便利に使えています。久しぶりにPowerShellを使って感動もしました。ありがとうございました。

  2. ko^ji より:

    こんにちは。

    $FilePath に日本語(日本語のフォルダ名)が含まれていると、うまく保存されないようです。

    以下のような記事を見つけましたが、自分では対処できません。
    対応していただければ助かります。

    PowerShellスクリプトコードに日本語が存在する場合にエラーが発生する場合の対応
    (https://feeld-uni.com/?p=644)

    よろしくお願いいたします。

    • syo より:

      返信が遅くなり申し訳ありません。記事に記載を追加しました。
      メモ帳で保存時に「エンコード」部分を「ANSI」に変更して保存してもらうと解決すると思います。