書き残し

画面キャプチャのフリーソフトに目からウロコ、自作してみた。

%e7%94%bb%e9%9d%a2%e4%bf%9d%e5%ad%98
画面キャプチャのフリーソフトに目からウロコ、自分も自作してみた。
作った経緯は、会社で画面キャプチャのフリーソフトを
教えてもらったのがキッカケです。
こんなのあるだ、凄く便利、おそらく自分が自作した
モノより安定して動くと思います。
(なんか自分でも作れそうという思いにかられ作りました。)
ちなみに自分の画面保存のフリーソフトは
Windows10でしか動作を検証していません。
あと、動かないという方はソースコードを公開しますので
自分で作り直してください。
本当はもっと良いものを作りたかったのですが・・・
透過する処理(this.TransparencyKey)を追加するとマウスイベントが
うまく制御できなかったので、手っ取り早い対応で
乗り切ったのですが・・・。
直したい気持ちが強いです(無駄多し)。
ダウンロードはこちらから→zip358.com/tool/gamen.zip

トイウコトデC#でのソースコードを貼っときます。

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Drawing.Imaging;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace 画面キャプチャ
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        private void Form1_Load(object sender, EventArgs e)
        {
            //透明を指定する
            this.TransparencyKey = this.BackColor;
        }
        private void toolStripMenuItem1_Click(object sender, EventArgs e)
        {
        }
        private void jPGToolStripMenuItem_Click(object sender, EventArgs e)
        {
            string strMyDoc;
            string dname;
            // 画像のサイズを指定し、Bitmapオブジェクトのインスタンスを作成
            Bitmap bm = new Bitmap(this.Width-16, this.Height-66);
            // Graphicsオブジェクトのインスタンスを作成
            Graphics gr = Graphics.FromImage(bm);
            strMyDoc = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
            DateTime dt = DateTime.Now;
            dname = dt.ToString("yyyy-MM-dd-HH_mm_ss");
            if (toolStripTextBox1.TextLength>0){
                dname = toolStripTextBox1.Text;
            }
            gr.CopyFromScreen(new Point(this.Location.X+8, this.Location.Y+58), new Point(0, 0), bm.Size);
            // JPGで保存
            bm.Save(strMyDoc + "\\" + dname + ".jpg", System.Drawing.Imaging.ImageFormat.Jpeg);
            gr.Dispose();
            MessageBox.Show("ドキュメントに「" + dname + ".jpg」の名前で保存しました");
        }
        private void pNGToolStripMenuItem_Click(object sender, EventArgs e)
        {
            string strMyDoc;
            string dname;
            // 画像のサイズを指定し、Bitmapオブジェクトのインスタンスを作成
            Bitmap bm = new Bitmap(this.Width - 16, this.Height - 66);
            // Graphicsオブジェクトのインスタンスを作成
            Graphics gr = Graphics.FromImage(bm);
            strMyDoc = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
            DateTime dt = DateTime.Now;
            dname = dt.ToString("yyyy-MM-dd-HH_mm_ss");
            if (toolStripTextBox1.TextLength > 0)
            {
                dname = toolStripTextBox1.Text;
            }
            gr.CopyFromScreen(new Point(this.Location.X + 8, this.Location.Y + 58), new Point(0, 0), bm.Size);
            // PNGで保存
            bm.Save(strMyDoc + "\\" + dname + ".png", System.Drawing.Imaging.ImageFormat.Png);
            gr.Dispose();
            MessageBox.Show("ドキュメントに「" + dname + ".png」の名前で保存しました");
        }
        private void bMPToolStripMenuItem_Click(object sender, EventArgs e)
        {
            string strMyDoc;
            string dname;
            // 画像のサイズを指定し、Bitmapオブジェクトのインスタンスを作成
            Bitmap bm = new Bitmap(this.Width - 16, this.Height - 66);
            // Graphicsオブジェクトのインスタンスを作成
            Graphics gr = Graphics.FromImage(bm);
            strMyDoc = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
            DateTime dt = DateTime.Now;
            dname = dt.ToString("yyyy-MM-dd-HH_mm_ss");
            if (toolStripTextBox1.TextLength > 0)
            {
                dname = toolStripTextBox1.Text;
            }
            gr.CopyFromScreen(new Point(this.Location.X + 8, this.Location.Y + 58), new Point(0, 0), bm.Size);
            // BMPで保存
            bm.Save(strMyDoc + "\\" + dname + ".bmp", System.Drawing.Imaging.ImageFormat.Bmp);
            gr.Dispose();
            MessageBox.Show("ドキュメントに「" + dname + ".bmp」の名前で保存しました");
        }
        private void gifToolStripMenuItem_Click(object sender, EventArgs e)
        {
            string strMyDoc;
            string dname;
            // 画像のサイズを指定し、Bitmapオブジェクトのインスタンスを作成
            Bitmap bm = new Bitmap(this.Width - 16, this.Height - 66);
            // Graphicsオブジェクトのインスタンスを作成
            Graphics gr = Graphics.FromImage(bm);
            strMyDoc = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
            DateTime dt = DateTime.Now;
            dname = dt.ToString("yyyy-MM-dd-HH_mm_ss");
            if (toolStripTextBox1.TextLength > 0)
            {
                dname = toolStripTextBox1.Text;
            }
            gr.CopyFromScreen(new Point(this.Location.X + 8, this.Location.Y + 58), new Point(0, 0), bm.Size);
            // gifで保存
            bm.Save(strMyDoc + "\\" + dname + ".gif", System.Drawing.Imaging.ImageFormat.Gif);
            gr.Dispose();
            MessageBox.Show("ドキュメントに「" + dname + ".gif」の名前で保存しました");
        }
        private void toolStripTextBox1_Click(object sender, EventArgs e)
        {
        }
    }
}

 
 

The following two tabs change content below.
zip358と申します。 まったりWEB日誌を更新している中の人です? 趣味は映画鑑賞とブログ書きです、 こちらで生活できるようになるのが目標です。 ブックマークやシェアして頂けると励みになります。 どうぞよろしくお願い致します。

関連記事

  1. 書き残し

    phpにはstdclassってものが有るだってさ。おそらくjavaにはないよ。

    phpにはstdclassってものが有る。使い方は下記の通り$ho…

  2. 書き残し

    WinSCPというソフトが有るのだけど。

    WinSCPというソフトが有るのだけど自分はこのソフト、FTPのソフ…

  3. 書き残し

    Windows10のコンピューターが毎日特定の時刻にスリープ状態から復帰するよ!?なぜ

    Windows10のコンピューターが毎日特定の時刻にスリープ状態から…

  4. 書き残し

    laravelをインストールするまで。

    laraveをインストールするまで、普通の環境ならそれ程、時間もかか…

  5. 書き残し

    結構有名、ブラウザ操作を自動化、ただし規則性のあるモノに限るツール。

    結構有名、ブラウザ操作を自動化、ただし規則性のあるモノに限るツールで…

2016年11月
1234567
891011121314
15161718192021
22232425262728
293031  

アクセスカウンター😅

とある高知県の気温や湿度

Twitter でフォロー

PAGE TOP