とある目的で、クリップボードにコピーされた画像をファイルとして保存する処理を書いてみました。
下記のようなツールも見つけましたが、任意のタイミングで任意の場所にファイル保存したかったので、自分で書くことにしました。
下記の通り簡単なコードで、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
画質や透過色の指定は行っていませんが、比較的簡単なコード修正で対応できるかと思います。




















この記事へのコメントはありません。