とある目的で、クリップボードにコピーされた画像をファイルとして保存する処理を書いてみました。
下記のようなツールも見つけましたが、任意のタイミングで任意の場所にファイル保存したかったので、自分で書くことにしました。
下記の通り簡単なコードで、PNG、JPEG、BMP、GIF、TIF形式での保存に対応しています。
CB2IMG.cs
using System; using System.IO; using System.Drawing; using System.Drawing.Imaging; using System.Windows.Forms; namespace CB2IMG { class Program { [STAThread] public static void Main(string[] args) { Image img = Clipboard.GetImage(); if (img != null) { ImageFormat fmt = ImageFormat.Png; switch (Path.GetExtension(@args[0]).ToLower()) { case ".jpg": case ".jpeg": fmt = ImageFormat.Jpeg; break; case ".bmp": fmt = ImageFormat.Bmp; break; case ".gif": fmt = ImageFormat.Gif; break; case ".tif": fmt = ImageFormat.Tiff; break; default: break; } try { img.Save(@args[0], fmt); } catch (Exception e) { Console.WriteLine("Exception: {0}", e); } } } } }
csc.exeによるコンパイル
統合開発環境であるVisual Studioがなくても、OS標準搭載の「csc.exe」を使えば、下記サイトのように簡単にコンパイルできます。
使い方
使い方も単純で、クリップボードに画像がコピーされている状態で、保存ファイルのパスを指定して実行するだけです。
cb2img 画像.jpg
画質や透過色の指定は行っていませんが、比較的簡単なコード修正で対応できるかと思います。
この記事へのコメントはありません。