{"id":3227,"date":"2020-03-05T00:00:02","date_gmt":"2020-03-04T15:00:02","guid":{"rendered":"http:\/\/kats-eye.net\/info\/?p=3227"},"modified":"2020-03-05T00:02:08","modified_gmt":"2020-03-04T15:02:08","slug":"c-mous-dd-04","status":"publish","type":"post","link":"https:\/\/kats-eye.net\/info\/2020\/03\/05\/c-mous-dd-04\/","title":{"rendered":"C# \u30de\u30a6\u30b9\u306b\u3088\u308b\u62e1\u5927\u51e6\u7406\u3068\u81ea\u7531\u66f2\u7dda\u63cf\u753b"},"content":{"rendered":"<table style=\"width: 100%; border-collapse: collapse; border-style: none; height: 27px;\" border=\"1\">\n<tbody>\n<tr style=\"height: 30px; border-bottom: 3px #0000ff solid;\">\n<td style=\"width: 1.5%; border-style: none; background-color: #0000ff; height: 27px;\"><\/td>\n<td style=\"width: 2.63291%; border-style: none; height: 27px; background-color: #ffffff;\"><\/td>\n<td style=\"border-style: none; height: 27px; background-color: #ffffff; width: 96.2025%;\"><span style=\"font-family: verdana, geneva, sans-serif;\"><strong><span style=\"font-size: 18pt; color: #0000ff;\">\u30de\u30a6\u30b9\u306b\u3088\u308b\u62e1\u5927\u51e6\u7406\u3068\u81ea\u7531\u66f2\u7dda\u63cf\u753b<\/span><\/strong><\/span><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><span style=\"font-size: 14pt;\">\u3000\u904e\u53bb\uff12\u56de\u3067pictureBox\u3078\u306e\u2460\u81ea\u7531\u66f2\u7dda\u63cf\u753b\u3068\u2461\u63cf\u753b\u753b\u50cf\u62e1\u5927\u3092\u884c\u3044\u307e\u3057\u305f\u3002\u4eca\u56de\u306f\u305d\u308c\u3089\u3092\u540c\u6642\u306b\u5b9f\u884c\u3059\u308b\u30c4\u30fc\u30eb\u3092\u4f5c\u6210\u3057\u307e\u3057\u305f\u3002<br \/>\n<\/span><span style=\"font-size: 14pt;\">\u3000\u79c1\u306b\u3068\u3063\u3066\u306e\u8ab2\u984c\u306f\u3001\u62e1\u5927\u3057\u7570\u306a\u308b\u500d\u7387\u3067\u8868\u793a\u3055\u308c\u3066\u3044\u308b\u753b\u50cf\u306b\u5bfe\u3057\u3066\u3001\u540c\u3058\u592a\u3055\u3092\u6307\u5b9a\u3057\u305f\u6642\u306b\u540c\u3058\u592a\u3055\u306e\u7dda\u3092\u63cf\u753b\u3059\u308b\u3053\u3068\u3067\u3059\u3002\u5f53\u308a\u524d\u306e\u69d8\u3067\u3059\u304c\u3001\u540c\u3058\u592a\u3055\u3068\u306f\u3001\u8868\u793a\u500d\u7387\u306b\u5bfe\u5fdc\u3057\u305f\u592a\u3055\u306e\u66f2\u7dda\u3092\u63cf\u304f\u3053\u3068\u3067\u3059\u3002\u3069\u306e\u69d8\u306b\u592a\u3055\u3092\u6307\u5b9a\u3059\u308b<\/span><span style=\"font-size: 14pt;\">\u306e\u3067\u3057\u3087\u3046\u304b\u3002<br \/>\n<span style=\"font-size: 14pt;\">\u3000\u4eca\u56de\u306f\u3001\u5143\u753b\u50cf\uff08\u5199\u771f\uff09\u3068\u540c\u30b5\u30a4\u30ba\u306e\u63cf\u753bCANVAS\u3092\u7528\u610f\u3057\u3001\u8868\u793a\u500d\u7387\u306b\u95a2\u4fc2\u306a\u304fCANVAS\u5074\u306b\u63cf\u753b\u5f8c\u3001\u500d\u7387\u30fb\u8868\u793a\u4f4d\u7f6e\u3092\u6307\u5b9a\u3057\u3001pictureBox\u306bCANVAS\u306e\u5168\u4f53\u3082\u3057\u304f\u306f\u4e00\u90e8\u3092\u63cf\u753b\u3059\u308b\u3053\u3068\u306b\u3057\u307e\u3057\u305f\u3002<\/span><\/span><\/p>\n<table style=\"width: 100%; border-collapse: collapse; border-style: none; height: 27px;\" border=\"1\">\n<tbody>\n<tr style=\"height: 30px; border-bottom: 3px #0000ff solid;\">\n<td style=\"width: 1.5%; border-style: none; background-color: #0000ff; height: 27px;\"><\/td>\n<td style=\"width: 2.63291%; border-style: none; height: 27px; background-color: #ffffff;\"><\/td>\n<td style=\"border-style: none; height: 27px; background-color: #ffffff; width: 96.2025%;\"><span style=\"font-family: verdana, geneva, sans-serif;\"><strong><span style=\"font-size: 18pt; color: #0000ff;\">\u63cf\u753bCANVAS\u3068pictureBox\u69cb\u6210<\/span><\/strong><\/span><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><span style=\"font-size: 14pt;\">\u3000\u63cf\u753b\u7528CANVAS\u3068\u8868\u793a\u7528pictureBox\u306e\u69cb\u6210\u3092\u6b21\u306e\u56f3\u306b\u793a\u3057\u307e\u3059\u3002\u4ee5\u524d\u6295\u7a3f\u3057\u305f\u81ea\u7531\u66f2\u7dda\u306f\u76f4\u63a5pictureBox\u306b\u63cf\u753b\u3057\u3066\u3044\u307e\u3057\u305f\u3002\u3053\u306e\u65b9\u6cd5\u3067\u306fpictureBox\u30b5\u30a4\u30ba\u306b\u5bfe\u5fdc\u3059\u308b\u7dda\u306e\u592a\u3055\u3068\u306a\u308b\u70ba\u3001\u5143\u753b\u50cf\u8868\u793a\u500d\u7387\u3092\u5909\u66f4\u3057\u305f\u6642\u3082\u540c\u3058\u592a\u3055\u306e\u7dda\u306b\u306a\u3063\u3066\u3057\u307e\u3044\u307e\u3057\u305f<\/span><span style=\"font-size: 14pt;\">\u3002<br \/>\n<span style=\"font-size: 14pt;\">\u3000\u3053\u306e\u554f\u984c\u3092\u89e3\u6c7a\u3059\u308b\u70ba\u306b\u3001\u5143\u753b\u50cf\u3068\u540c\u3058\u30b5\u30a4\u30ba\u306eBitmap\u30ad\u30e3\u30f3\u30d0\u30b9\u3092\u7528\u610f\u3057\u307e\u3059\u3002pictureBox\u30de\u30a6\u30b9\u30a4\u30d9\u30f3\u30c8\u767a\u751f\u6642\u306b\u53d6\u5f97\u51fa\u6765\u308b\u5ea7\u6a19\u3092\u3001\u3053\u306eBitmap\u30ad\u30e3\u30f3\u30d0\u30b9\u306b\u5bfe\u5fdc\u3059\u308b\u5ea7\u6a19\u306b\u5909\u63db\u30fb\u63cf\u753b\u5f8c\u3001\u5143\u753b\u50cf\u3068\u540c\u7bc4\u56f2\u30fb\u540c\u7e2e\u5c3a\u3067\u5bfe\u5fdc\u3059\u308bpictureBox\u306b\u63cf\u753b\u3057\u307e\u3059\u3002<br \/>\n<span style=\"font-size: 14pt;\">\u3000pictureBox\u306f\u30ec\u30a4\u30e4\u30fc\u69cb\u6210\u3068\u306a\u3063\u3066\u304a\u308a\u3001\u5143\u753b\u50cf\u4ee5\u5916\u306e\u30ec\u30a4\u30e4\u30fc\u306f\u80cc\u666f\u304c\u7121\u8272\u900f\u660e\u306b\u306a\u3063\u3066\u3044\u308b\u306e\u3067\u3001\u5143\u753b\u50cf\u4e0a\u306b\u63cf\u753b\u3057\u3066\u3044\u308b\u69d8\u306b\u898b\u3048\u307e\u3059\u3002<\/span><br \/>\n<\/span><\/span><span style=\"font-size: 14pt;\"><img loading=\"lazy\" class=\"aligncenter size-full wp-image-3234\" src=\"https:\/\/kats-eye.net\/info\/wp-content\/uploads\/2020\/03\/003.png\" alt=\"\" width=\"940\" height=\"856\" srcset=\"https:\/\/kats-eye.net\/info\/wp-content\/uploads\/2020\/03\/003.png 940w, https:\/\/kats-eye.net\/info\/wp-content\/uploads\/2020\/03\/003-300x273.png 300w, https:\/\/kats-eye.net\/info\/wp-content\/uploads\/2020\/03\/003-768x699.png 768w\" sizes=\"(max-width: 940px) 100vw, 940px\" \/>\u3000\u76f4\u63a5pictureBox\u306b\u63cf\u753b\u3059\u308b\u65b9\u6cd5\u306b\u5bfe\u3057\u3001\u4e00\u5ea6Bitmap\u30ad\u30e3\u30f3\u30d0\u30b9\u306b\u66f8\u304d\u8fbc\u3080\u65b9\u6cd5\u306f\u51e6\u7406\u6642\u9593\u304c\u9577\u304f\u306a\u308a\u307e\u3059\u3002\u30de\u30a6\u30b9\u64cd\u4f5c\u6642\u306b\u767a\u751f\u3059\u308b\u30de\u30a6\u30b9\u30e0\u30fc\u30d6\u30a4\u30d9\u30f3\u30c8\u6bce\u306b\u518d\u63cf\u753b\u51e6\u7406\u3092\u884c\u3046\u3068\u9045\u5ef6\u304c\u5927\u304d\u304f\u306a\u308b\u306e\u3067\u3001\u4e88\u3081\u753b\u50cf\u3092\u7e2e\u5c0f\u5316\u3057\u305f\u308a\u3001\u518d\u63cf\u753b\u51e6\u7406\u306e\u983b\u5ea6\u3092\u6e1b\u3089\u3059\u69d8\u306b\u3057\u3066\u3044\u307e\u3059\u3002<\/span><\/p>\n<table style=\"width: 100%; border-collapse: collapse; border-style: none; height: 27px;\" border=\"1\">\n<tbody>\n<tr style=\"height: 30px; border-bottom: 3px #0000ff solid;\">\n<td style=\"width: 1.5%; border-style: none; background-color: #0000ff; height: 27px;\"><\/td>\n<td style=\"width: 2.63291%; border-style: none; height: 27px; background-color: #ffffff;\"><\/td>\n<td style=\"border-style: none; height: 27px; background-color: #ffffff; width: 96.2025%;\"><span style=\"font-family: verdana, geneva, sans-serif;\"><strong><span style=\"font-size: 18pt; color: #0000ff;\">\u8a55\u4fa1\u30d7\u30ed\u30b0\u30e9\u30e0<\/span><\/strong><\/span><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><span style=\"font-size: 14pt;\">\u3000\u8a55\u4fa1\u30d7\u30ed\u30b0\u30e9\u30e0\u3092\u63b2\u8f09\u3057\u307e\u3059\u3002<br \/>\n<\/span><\/p>\n<pre class=\"height-set:true lang:c# decode:true\" title=\"Pic_ZoomAndDraw\uff08Frm_05\uff09\">using System;\r\nusing System.Collections.Generic;\r\nusing System.ComponentModel;\r\nusing System.Data;\r\nusing System.Drawing;\r\nusing System.Drawing.Drawing2D;\r\nusing System.Linq;\r\nusing System.Text;\r\nusing System.Threading.Tasks;\r\nusing System.Windows.Forms;\r\n\r\nnamespace ListViewTest\r\n{\r\n    public partial class Frm_05 : Form\r\n    {\r\n        private Bitmap srcImg;\r\n        private Bitmap drwCvs;\r\n        private Bitmap tmpCvs;\r\n\r\n        private bool draw_flag = false;\r\n        private Point[] mus_dn = new Point[2];\r\n\r\n        private double zRatio = 1d ;\r\n        private Rectangle drwRct ;\r\n        private Rectangle srcRct ;\r\n\r\n        private Size minSiz;\r\n\r\n        \/\/private int color_trans;\r\n        \/\/private int line_wdth;\r\n        private List&lt;Point&gt; points = new List&lt;Point&gt;();\r\n\r\n        public Frm_05()\r\n        {\r\n            InitializeComponent();\r\n        }\r\n\r\n        private void Frm_05_Load(object sender, EventArgs e)\r\n        {\r\n            pict_init();\r\n            minSiz = this.Size;                         \/\/ \u8d77\u52d5\u6642\u30b5\u30a4\u30ba\u3092 Minimum\u30b5\u30a4\u30ba\u3068\u3057\u3066\u767b\u9332\u3059\u308b\r\n            btnSizeLock(1);\r\n\r\n            string src_pth = @\"\";\r\n            string tgt_pth = @\"\";\r\n\r\n            SaveImage(src_pth, tgt_pth, 80);            \/\/ \u5143\u30d5\u30a1\u30a4\u30eb\u30d1\u30b9\u3001\u65b0\u898f\u30d5\u30a1\u30a4\u30eb\u30d1\u30b9\u3001\u54c1\u8cea\uff081\uff5e100\uff09\u3092\u6307\u5b9a\u3057\u5727\u7e2e\u3059\u308b\r\n\r\n            System.Drawing.Bitmap orgImg = new Bitmap(tgt_pth);\r\n            srcImg = trans_orgImg_to_crtImg(orgImg);    \/\/ \u6700\u5927\u5e451600\u3068\u3057\u3066\u753b\u50cf\u3092\u7e2e\u5c0f\u3059\u308b\r\n            \r\n            tmpCvs = new Bitmap(srcImg.Width, srcImg.Height);\r\n            drwCvs = new Bitmap(srcImg.Width, srcImg.Height);\r\n\r\n            draw_picturebox(0);\r\n\r\n        }\r\n\r\n        \r\n\r\n        \/\/ pictureBox\u521d\u671f\u8a2d\u5b9a\r\n        private void pict_init()\r\n        {\r\n            pictureBox1.Location = new Point(8, 8);\r\n            pictureBox2.Location = new Point(8, 8);\r\n            pictureBox3.Location = new Point(8, 8);\r\n            pictureBox4.Location = new Point(8, 8);\r\n\r\n            \/\/ \u89aapictureBox\u5bfe\u3057\u3001\u900f\u660e\u5316\u3059\u308b\u51e6\u7406\r\n            pictureBox2.Parent = pictureBox1;\r\n            pictureBox2.BackColor = Color.Transparent;\r\n\r\n            \/\/ \u5143\u306eParent\uff08Form\uff09\u306b\u5bfe\u3059\u308b\u5ea7\u6a19\u3092\u88dc\u6b63\u3059\u308b\r\n            pictureBox2.Location = new Point(pictureBox2.Location.X - pictureBox1.Location.X, pictureBox2.Location.Y - pictureBox1.Location.Y);\r\n            pictureBox2.Size = pictureBox1.Size;\r\n\r\n\r\n            \/\/ \u89aapictureBox\u5bfe\u3057\u3001\u900f\u660e\u5316\u3059\u308b\u51e6\u7406\r\n            pictureBox3.Parent = pictureBox2;\r\n            pictureBox3.BackColor = Color.Transparent;\r\n\r\n            \/\/ \u5143\u306eParent\uff08Form\uff09\u306b\u5bfe\u3059\u308b\u5ea7\u6a19\u3092\u88dc\u6b63\u3059\u308b\r\n            pictureBox3.Location = new Point(pictureBox3.Location.X - pictureBox1.Location.X, pictureBox3.Location.Y - pictureBox1.Location.Y);\r\n            pictureBox3.Size = pictureBox1.Size;\r\n\r\n\r\n            \/\/ \u89aapictureBox\u5bfe\u3057\u3001\u900f\u660e\u5316\u3059\u308b\u51e6\u7406\r\n            pictureBox4.Parent = pictureBox3;\r\n            pictureBox4.BackColor = Color.Transparent;\r\n\r\n            \/\/ \u5143\u306eParent\uff08Form\uff09\u306b\u5bfe\u3059\u308b\u5ea7\u6a19\u3092\u88dc\u6b63\u3059\u308b\r\n            pictureBox4.Location = new Point(pictureBox4.Location.X - pictureBox1.Location.X, pictureBox4.Location.Y - pictureBox1.Location.Y);\r\n            pictureBox4.Size = pictureBox1.Size;\r\n\r\n\r\n        }\r\n\r\n        \/\/ \u62e1\u5927\u30fb\u63cf\u753b\u5207\u308a\u66ff\u3048\u30dc\u30bf\u30f3\r\n        private void button1_Click(object sender, EventArgs e)\r\n        {\r\n            if (button1.Text == \"\u63cf\u753b\")\r\n            {\r\n                btnSizeLock(0);\r\n            }\r\n            else { btnSizeLock(1); }\r\n        }\r\n\r\n        \/\/ \u63cf\u753b\u30fb\u62e1\u5927\u5207\u308a\u66ff\u3048\r\n        private void btnSizeLock(int dsp)\r\n        {\r\n            if (dsp == 1)\r\n            {\r\n                this.MinimumSize = this.Size;\r\n                this.MaximumSize = this.Size;\r\n                button1.BackColor = Color.Red;\r\n                button1.ForeColor = Color.Yellow;\r\n                button1.Text = \"\u63cf\u753b\";\r\n\r\n            }\r\n            else\r\n            {\r\n                this.MinimumSize = minSiz;\r\n                this.MaximumSize = new Size(0, 0);\r\n                button1.BackColor = Color.Blue;\r\n                button1.ForeColor = Color.White;\r\n                button1.Text = \"\u62e1\u5927\";\r\n\r\n            }\r\n        }\r\n\r\n\r\n\r\n\r\n\r\n        \/\/ \u25c6\u25c6\u25c6\u25c6\u25c6\u25c6\u25c6\u25c6\u25c6\u25c6\u25c6\u25c6\u25c6\u25c6\u25c6\u25c6\u25c6\u25c6\u25c6\u25c6\u25c6\u25c6\u25c6\u25c6\u25c6\u25c6\u25c6\u25c6\u25c6\u25c6\u25c6\u25c6\u25c6\r\n        \/\/ \u753b\u50cf\u5e45\u304c\u4e00\u5b9a\u5024\u3088\u308a\u5927\u304d\u3044\u5834\u5408\u3001\u518d\u63cf\u753b\uff08\u753b\u50cf\u30b5\u30a4\u30ba\u7e2e\u5c0f\uff09\r\n        private Bitmap trans_orgImg_to_crtImg(Bitmap orgImg)\r\n        {\r\n            Bitmap tmpBitMap;\r\n            int org_wdt = orgImg.Width;\r\n            int org_hgt = orgImg.Height;\r\n\r\n            int trs_wdt = 1600;\r\n            int trs_hgt = (int)(trs_wdt * org_hgt \/ org_wdt);\r\n\r\n            if (org_wdt &gt; trs_wdt)\r\n            {\r\n                Bitmap cvs = new Bitmap(trs_wdt, trs_hgt);\r\n                Graphics g = Graphics.FromImage(cvs);\r\n\r\n                g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic;\r\n                g.DrawImage(orgImg, 0, 0, trs_wdt, trs_hgt);\r\n                g.Dispose();\r\n\r\n                tmpBitMap = cvs;\r\n            }\r\n            else\r\n            {\r\n                tmpBitMap = orgImg;\r\n            }\r\n\r\n            return tmpBitMap;\r\n        }\r\n\r\n\r\n        \/\/\/ &lt;summary&gt;\r\n        \/\/\/ \u6307\u5b9a\u3055\u308c\u305f\u753b\u50cf\u30d5\u30a1\u30a4\u30eb\u3092\u3001\u54c1\u8cea\u3092\u6307\u5b9a\u3057\u3066JPEG\u3067\u4fdd\u5b58\u3059\u308b\r\n        \/\/\/ &lt;\/summary&gt;\r\n        \/\/\/ &lt;param name=\"fileName\"&gt;\u5909\u63db\u3059\u308b\u753b\u50cf\u30d5\u30a1\u30a4\u30eb\u540d&lt;\/param&gt;\r\n        \/\/\/ &lt;param name=\"quality\"&gt;\u54c1\u8cea&lt;\/param&gt;\r\n        public static void SaveImage(string fl_Name_Src, string fl_Name_Tgt, int quality)\r\n        {\r\n            System.Drawing.Bitmap bmp = new System.Drawing.Bitmap(fl_Name_Src);                 \/\/ \u753b\u50cf\u30d5\u30a1\u30a4\u30eb\u8aad\u8fbc\r\n            \r\n            \/\/ EncoderParameter\u30aa\u30d6\u30b8\u30a7\u30af\u30c81\u3064\u683c\u7d0d\u3059\u308bEncoderParameters\u30af\u30e9\u30b9\u306e\u65b0\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u3092\u521d\u671f\u5316\uff08\u54c1\u8cea\u306e\u307f\u6307\u5b9a\u3059\u308b\u305f\u30811\u3064\uff09\r\n            System.Drawing.Imaging.EncoderParameters eps = new System.Drawing.Imaging.EncoderParameters(1);\r\n            \/\/ \u54c1\u8cea\u6307\u5b9a\r\n            System.Drawing.Imaging.EncoderParameter ep = new System.Drawing.Imaging.EncoderParameter(System.Drawing.Imaging.Encoder.Quality, (long)quality);\r\n            eps.Param[0] = ep;                                                                  \/\/ EncoderParameters\u306b\u30bb\u30c3\u30c8\r\n            System.Drawing.Imaging.ImageCodecInfo ici = GetEncoderInfo(\"image\/jpeg\");           \/\/ \u30a4\u30e1\u30fc\u30b8\u30a8\u30f3\u30b3\u30fc\u30c0\u306b\u95a2\u3059\u308b\u60c5\u5831\u53d6\u5f97\r\n            string ext = ici.FilenameExtension.Split(';')[0];                                   \/\/ \u65b0\u30d5\u30a1\u30a4\u30eb\u62e1\u5f35\u5b50\u53d6\u5f97\r\n            ext = System.IO.Path.GetExtension(ext).ToLower();\r\n            string saveName = System.IO.Path.ChangeExtension(fl_Name_Tgt, ext);                 \/\/ \u4fdd\u5b58\u30d5\u30a1\u30a4\u30eb\u540d\u3092\u6c7a\u5b9a\uff08\u62e1\u5f35\u5b50\u3092\u5909\u3048\u308b\uff09\r\n\r\n            bmp.Save(saveName, ici, eps);                                                       \/\/ \u4fdd\u5b58\r\n\r\n            bmp.Dispose();\r\n            eps.Dispose();\r\n        }\r\n\r\n        \/\/MimeType\u3067\u6307\u5b9a\u3055\u308c\u305fImageCodecInfo\u3092\u63a2\u3057\u3066\u8fd4\u3059\r\n        private static System.Drawing.Imaging.ImageCodecInfo\r\n            GetEncoderInfo(string mineType)\r\n        {\r\n            \/\/GDI+ \u306b\u7d44\u307f\u8fbc\u307e\u308c\u305f\u30a4\u30e1\u30fc\u30b8 \u30a8\u30f3\u30b3\u30fc\u30c0\u306b\u95a2\u3059\u308b\u60c5\u5831\u3092\u3059\u3079\u3066\u53d6\u5f97\r\n            System.Drawing.Imaging.ImageCodecInfo[] encs =\r\n                System.Drawing.Imaging.ImageCodecInfo.GetImageEncoders();\r\n            \/\/\u6307\u5b9a\u3055\u308c\u305fMimeType\u3092\u63a2\u3057\u3066\u898b\u3064\u304b\u308c\u3070\u8fd4\u3059\r\n            foreach (System.Drawing.Imaging.ImageCodecInfo enc in encs)\r\n            {\r\n                if (enc.MimeType == mineType)\r\n                {\r\n                    return enc;\r\n                }\r\n            }\r\n            return null;\r\n        }\r\n\r\n        \/\/ \u30d5\u30a9\u30fc\u30e0\u30ea\u30b5\u30a4\u30ba\r\n        private void Frm_05_Resize(object sender, EventArgs e)\r\n        {\r\n            draw_picturebox(0);\r\n        }\r\n\r\n\r\n        \/\/ \u25c6\u25c6\u25c6\u3000\u2193\u2193\u2193\u3000\u30de\u30a6\u30b9\u64cd\u4f5c\u3000\u2193\u2193\u2193\u3000\u25c6\u25c6\u25c6\r\n        private void pictureBox4_MouseDown(object sender, MouseEventArgs e)\r\n        {\r\n            draw_flag = true;\r\n\r\n            if (button1.Text.Trim() == \"\u62e1\u5927\")\r\n            {\r\n                \/\/ \u62e1\u5927\u51e6\u7406    \r\n                mus_dn[0].X = e.X;\r\n                mus_dn[0].Y = e.Y;\r\n\r\n            } else {\r\n                \/\/ \u63cf\u753b\r\n                Point tmp_pnt = new Point(e.X, e.Y);\r\n                points.Add(tmp_pnt);\r\n\r\n            }\r\n        }\r\n\r\n        private void pictureBox4_MouseMove(object sender, MouseEventArgs e)\r\n        {\r\n            if (!draw_flag) { return; };\r\n\r\n            if (button1.Text.Trim() == \"\u62e1\u5927\")\r\n            {\r\n                \/\/ \u62e1\u5927\u51e6\u7406\r\n                Bitmap tmp_cvs = new Bitmap(pictureBox4.Width, pictureBox4.Height);\r\n                Graphics tmp_g = Graphics.FromImage(tmp_cvs);\r\n                Point tmp_mv = new Point();\r\n                Pen tmp_p = new Pen(Color.FromArgb(255, 0, 0, 0), 1);\r\n                tmp_p.DashStyle = DashStyle.Dot;\r\n\r\n                if (e.X - mus_dn[0].X &gt;= 0) { tmp_mv.X = mus_dn[0].X; } else { tmp_mv.X = e.X; }    \/\/ \u59cb\u70b9\u4fee\u6b63(X)\r\n                if (e.Y - mus_dn[0].Y &gt;= 0) { tmp_mv.Y = mus_dn[0].Y; } else { tmp_mv.Y = e.Y; }    \/\/ \u59cb\u70b9\u4fee\u6b63(Y)\r\n\r\n                int tmp_wdt = Math.Abs(e.X - mus_dn[0].X);                                          \/\/ \u5e45(X)         \r\n                int tmp_hgt = Math.Abs(e.Y - mus_dn[0].Y);                                          \/\/ \u5e45(Y)\r\n\r\n                tmp_g.DrawRectangle(tmp_p, tmp_mv.X, tmp_mv.Y, tmp_wdt, tmp_hgt);                   \/\/ \u6307\u5b9a\u9818\u57df\u67a0\u63cf\u753b\r\n                pictureBox4.Image = tmp_cvs;\r\n\r\n            } else {\r\n                \/\/ \u63cf\u753b\r\n                points.Add(new Point(e.X, e.Y));\r\n                Point[] pa = points.ToArray();\r\n                if (pa.Length &lt; 3) { return; }\r\n                if (pa.Length % 6 == 0) { draw_tmpCvs( pa , 0 ); }                                  \/\/ \u2605 \u51e6\u7406\u983b\u5ea6\u3092\u4e0b\u3052\u3001\u9045\u5ef6\u6291\u5236\r\n                \r\n            }\r\n        }\r\n\r\n        private void pictureBox4_MouseUp(object sender, MouseEventArgs e)\r\n        {\r\n            if (!draw_flag) { return; };\r\n\r\n            if (button1.Text.Trim() == \"\u62e1\u5927\")\r\n            {   \/\/ \u62e1\u5927\u51e6\u7406\r\n                if (e.X &gt; pictureBox4.Width) { mus_dn[1].X = pictureBox4.Width ; }\r\n                else if (e.X &lt; 0) { mus_dn[1].X = 0 ; }\r\n                else { mus_dn[1].X = e.X ; }\r\n                \r\n                if (e.Y &gt; pictureBox4.Height) { mus_dn[1].Y = pictureBox4.Height; }\r\n                else if (e.Y &lt; 0) { mus_dn[1].Y = 0; }\r\n                else { mus_dn[1].Y = e.Y; }\r\n\r\n                pictureBox4.Image.Dispose();\r\n                pictureBox4.Image = null;\r\n                draw_picturebox(1);         \/\/ \u2605\u2605\u2605 \u518d\u8868\u793a \u2605\u2605\u2605\r\n                draw_flag = false;\r\n\r\n            } else {\r\n                \/\/ \u63cf\u753b\r\n                points.Add(new Point(e.X, e.Y));\r\n                Point[] pa = points.ToArray();\r\n                if (pa.Length &lt; 3) { return; }\r\n\r\n                draw_tmpCvs(pa, 1);                                                                \/\/ \u2605 \u63cf\u753b\u5185\u5bb9\u78ba\u5b9a\r\n                points.Clear();\r\n            }\r\n\r\n            draw_flag = false;\r\n        }\r\n\r\n        \/\/ \u25c6\u25c6\u25c6\u3000\u2191\u2191\u2191\u3000\u30de\u30a6\u30b9\u64cd\u4f5c\u3000\u2191\u2191\u2191\u3000\u25c6\u25c6\u25c6\r\n\r\n\r\n\r\n\r\n        \/\/ \u30d1\u30b9\u3092pictureBox\u306b\u76f4\u63a5\u63cf\u753b\uff08kbn \u2192 0:MouseMove\u6642(\u66ab\u5b9a)\u30011:MouseUp\u6642(\u78ba\u5b9a)\uff09\r\n        private void draw_tmpCvs(Point[] pa , int kbn)\r\n        {   \/\/ \u5ea7\u6a19\u5909\u63db\r\n            GraphicsPath tmp_pth = new GraphicsPath();\r\n\r\n            for (int i = 0; i &lt; pa.Length; i++)\r\n            {   int tmp_X = srcRct.X + (int)Math.Round((double)srcRct.Width * pa[i].X \/ drwRct.Width);                \r\n                int tmp_Y = srcRct.Y + (int)Math.Round((double)srcRct.Height * pa[i].Y \/ drwRct.Height);\r\n                pa[i].X = tmp_X;\r\n                pa[i].Y = tmp_Y;\r\n\r\n                if (i == 0){ tmp_pth.StartFigure(); }\r\n                else if (i &gt; 0) { tmp_pth.AddLine(pa[i - 1].X, pa[i - 1].Y, pa[i].X, pa[i].Y); }\r\n            }\r\n\r\n            \/\/ \u30da\u30f3\u306e\u5b9a\u7fa9\r\n            Pen tmp_p = new Pen(Color.FromArgb(50, 255, 0, 0), 30);\r\n            tmp_p.EndCap = System.Drawing.Drawing2D.LineCap.Round;\r\n            tmp_p.StartCap = System.Drawing.Drawing2D.LineCap.Round;\r\n            tmp_p.LineJoin = System.Drawing.Drawing2D.LineJoin.Round;\r\n\r\n            \/\/ \u30ad\u30e3\u30f3\u30d0\u30b9\u306b\u63cf\u753b\r\n            Graphics tmp_g;\r\n\r\n            if (kbn == 0)\r\n            {   tmpCvs = new Bitmap(srcImg.Width, srcImg.Height);\r\n                tmp_g = Graphics.FromImage(tmpCvs);\r\n            } else {\r\n                pictureBox3.Image = null;\r\n                tmp_g = Graphics.FromImage(drwCvs);\r\n            }\r\n\r\n            tmp_g.DrawPath(tmp_p, tmp_pth);\r\n            tmp_p.Dispose();\r\n            tmp_g.Dispose();\r\n\r\n            \/\/ \u30d4\u30af\u30c1\u30e3\u30fc\u30dc\u30c3\u30af\u30b9\u306b\u63cf\u753b\u30b3\u30e1\u30f3\u30c8\u8868\u793a   \r\n            Bitmap cvs = new Bitmap(pictureBox1.Width, pictureBox1.Height);\r\n            Graphics g = Graphics.FromImage(cvs);\r\n\r\n            if (kbn == 0) {\r\n                g.DrawImage(tmpCvs, drwRct, srcRct, GraphicsUnit.Pixel);\r\n                g.Dispose();\r\n                pictureBox3.Image = cvs;\r\n            } else {\r\n                g.DrawImage(drwCvs, drwRct, srcRct, GraphicsUnit.Pixel);\r\n                g.Dispose();\r\n                pictureBox2.Image = cvs;\r\n            }\r\n        }\r\n\r\n        \/\/ \u2460\u8d77\u52d5\u6642\u3001\u30d5\u30a9\u30fc\u30e0\u30ea\u30b5\u30a4\u30ba\u6642\u3001\u30ea\u30bb\u30c3\u30c8\u30dc\u30bf\u30f3\u62bc\u4e0b\u6642\r\n        \/\/ \u2461\u30de\u30a6\u30b9\u9818\u57df\u6307\u5b9a\u306b\u3088\u308b\u753b\u50cf\u62e1\u5927\uff08\u30de\u30a6\u30b9\u30a2\u30c3\u30d7\u6642\u547c\u51fa\uff09\r\n        private void draw_picturebox(int kbn)\r\n        {\r\n            Bitmap cvs;\r\n            Graphics g;\r\n\r\n            Size PicMaxSiz = new Size(this.ClientSize.Width - 16, this.ClientSize.Height - 70);\r\n            \/\/Size SrcPicSiz = new Size(srcImg.Width, srcImg.Height);\r\n\r\n            if (PicMaxSiz.Width &lt; 1 || PicMaxSiz.Height &lt; 1) { return; }\r\n\r\n           \r\n            if (kbn == 0) {\r\n                \/\/ \u30d5\u30a9\u30fc\u30e0\u30b5\u30a4\u30ba\u5909\u66f4\u306b\u5bfe\u5fdc\u3057\u3001\u5168\u753b\u50cf\u3092\u8868\u793a\r\n                double ratio_w = (double)PicMaxSiz.Width \/ srcImg.Width;                                                \/\/ \u5e45\u65b9\u5411\u500d\u7387\r\n                double ratio_h = (double)PicMaxSiz.Height \/ srcImg.Height;                                              \/\/ \u9ad8\u3055\u65b9\u5411\u500d\u7387\r\n\r\n                if (ratio_w &gt; ratio_h) { zRatio = ratio_h; } else { zRatio = ratio_w; }                                 \/\/ \u5168\u5bfe\u8c61\u9818\u57df\u304c\u53ce\u307e\u308b\u500d\u7387\u78ba\u5b9a\r\n\r\n                srcRct = new Rectangle(0, 0, srcImg.Width, srcImg.Height);\r\n                drwRct = new Rectangle(0, 0, (int)Math.Round(srcImg.Width * zRatio), (int)Math.Round(srcImg.Height * zRatio));\r\n\r\n            } else if (kbn == 1) {\r\n\r\n                \/\/ \u5207\u308a\u629c\u304d\u90e8\u5206\u3092\u8868\u793a\r\n                Point tmp_mv = new Point();\r\n\r\n                if (mus_dn[1].X - mus_dn[0].X &gt;= 0) { tmp_mv.X = mus_dn[0].X; } else { tmp_mv.X = mus_dn[1].X; }        \/\/ \u59cb\u70b9\u4fee\u6b63(X)\r\n                if (mus_dn[1].Y - mus_dn[0].Y &gt;= 0) { tmp_mv.Y = mus_dn[0].Y; } else { tmp_mv.Y = mus_dn[1].Y; }        \/\/ \u59cb\u70b9\u4fee\u6b63(Y)\r\n\r\n                int tmp_wdt = Math.Abs(mus_dn[1].X - mus_dn[0].X);                                                      \/\/ \u5e45(X)         \r\n                int tmp_hgt = Math.Abs(mus_dn[1].Y - mus_dn[0].Y);                                                      \/\/ \u5e45(Y)\r\n\r\n                double ratio_w = (double)PicMaxSiz.Width \/ tmp_wdt;                                                     \/\/ \u5e45\u65b9\u5411\u500d\u7387\r\n                double ratio_h = (double)PicMaxSiz.Height \/ tmp_hgt;                                                    \/\/ \u9ad8\u3055\u65b9\u5411\u500d\u7387\r\n\r\n                if (ratio_w &gt; ratio_h) { zRatio = ratio_h; } else { zRatio = ratio_w; }                                 \/\/ \u5168\u5bfe\u8c61\u9818\u57df\u304c\u53ce\u307e\u308b\u500d\u7387\u78ba\u5b9a\r\n\r\n                Rectangle tmpRct = srcRct;\r\n                Rectangle tp_Rct = drwRct;\r\n\r\n                \/\/ \u6307\u5b9a\u9818\u57df\u3092\u5143\u753b\u50cf\u306b\u5bfe\u3059\u308b\u9818\u57df\u306b\u5909\u63db\r\n                srcRct.X = tmpRct.X + (int)Math.Round((double)tmpRct.Width * tmp_mv.X \/ tp_Rct.Width);                  \/\/ \u5143\u753b\u50cf\u59cb\u70b9\uff08X\uff09\r\n                srcRct.Y = tmpRct.Y + (int)Math.Round((double)tmpRct.Height * tmp_mv.Y \/ tp_Rct.Height);                \/\/ \u5143\u753b\u50cf\u59cb\u70b9\uff08Y\uff09\r\n                srcRct.Width = (int)Math.Round((double)tmpRct.Width * tmp_wdt \/ tp_Rct.Width);                          \/\/ \u5143\u753b\u50cf\u5e45\uff08W\uff09\r\n                srcRct.Height = (int)Math.Round((double)tmpRct.Height * tmp_hgt \/ tp_Rct.Height);                       \/\/ \u5143\u753b\u50cf\u9ad8\u3055\uff08H\uff09\r\n\r\n                drwRct = new Rectangle(0, 0, (int)Math.Round(tmp_wdt * zRatio), (int)Math.Round(tmp_hgt * zRatio));\r\n            }\r\n\r\n            pictureBox1.Size = new Size( drwRct.Width , drwRct.Height);\r\n            pictureBox2.Size = pictureBox1.Size;\r\n            pictureBox3.Size = pictureBox1.Size;\r\n            pictureBox4.Size = pictureBox1.Size;\r\n\r\n            textBox1.Text = drwRct.Width.ToString();\r\n            textBox2.Text = drwRct.Height.ToString();\r\n\r\n            \/\/ \u5143\u753b\u50cf(\u5199\u771f)\u8868\u793a\r\n            cvs = new Bitmap(pictureBox1.Width, pictureBox1.Height);\r\n            g = Graphics.FromImage(cvs);\r\n            g.DrawImage(srcImg, drwRct, srcRct, GraphicsUnit.Pixel);\r\n            g.Dispose();\r\n            pictureBox1.Image = cvs;\r\n\r\n            \/\/ \u63cf\u753b\u30b3\u30e1\u30f3\u30c8\u8868\u793a\r\n            cvs = new Bitmap(pictureBox2.Width, pictureBox2.Height);\r\n            g = Graphics.FromImage(cvs);\r\n            g.DrawImage(drwCvs, drwRct, srcRct, GraphicsUnit.Pixel);\r\n            g.Dispose();\r\n            pictureBox2.Image = cvs;\r\n\r\n        }\r\n\r\n        \/\/ \u753b\u9762\u521d\u671f\u5316\uff08\u8868\u793a\u3055\u308c\u3066\u3044\u308b\u5168\u753b\u50cf\uff09\r\n        private void Button2_Click(object sender, EventArgs e)\r\n        {\r\n            draw_picturebox(0);\r\n        }\r\n\r\n        \/\/ \u521d\u671f\u5316\uff08\u30b3\u30e1\u30f3\u30c8\u6d88\u53bb\uff09\r\n        private void Button3_Click(object sender, EventArgs e)\r\n        {\r\n            tmpCvs = new Bitmap(srcImg.Width, srcImg.Height);\r\n            drwCvs = new Bitmap(srcImg.Width, srcImg.Height);\r\n\r\n            draw_picturebox(0);\r\n        }\r\n    }\r\n}\r\n<\/pre>\n<p>&nbsp;<\/p>\n<table style=\"width: 100%; border-collapse: collapse; border-style: none; height: 27px;\" border=\"1\">\n<tbody>\n<tr style=\"height: 30px; border-bottom: 3px #0000ff solid;\">\n<td style=\"width: 1.5%; border-style: none; background-color: #0000ff; height: 27px;\"><\/td>\n<td style=\"width: 2.63291%; border-style: none; height: 27px; background-color: #ffffff;\"><\/td>\n<td style=\"border-style: none; height: 27px; background-color: #ffffff; width: 96.2025%;\"><span style=\"font-family: verdana, geneva, sans-serif;\"><strong><span style=\"font-size: 18pt; color: #0000ff;\">\u7d50\u679c<\/span><\/strong><\/span><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><span style=\"font-size: 14pt;\">\u3000\u6b21\u306e\uff12\u3064\u306e\u30d5\u30a9\u30fc\u30e0\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u5185\u306epictureBox\u306b\u8868\u793a\u3055\u308c\u3066\u3044\u308b\u5199\u771f\u306f\u540c\u3058\u69d8\u306b\u898b\u3048\u307e\u3059\u304c\u3001\u5b9f\u969b\u306e\u8868\u793a\u30b5\u30a4\u30ba\uff08\u62e1\u5927\u7387\uff09\u306f\u7570\u306a\u308a\u307e\u3059\u3002<br \/>\n<span style=\"font-size: 14pt;\">\u3000\u5199\u771f\u4e0b\u306e\u5e45\u30fb\u9ad8\u3055\u5024\u3084\u30d5\u30a9\u30fc\u30e0\u306b\u5bfe\u3059\u308b\u30dc\u30bf\u30f3\u985e\u306e\u5927\u304d\u3055\u6bd4\u7387\u304b\u3089\u3082\u78ba\u8a8d\u3067\u304d\u308b\u3068\u601d\u3044\u307e\u3059\u3002<br \/>\n<span style=\"font-size: 14pt;\">\u3000\u7d50\u679c\u3068\u3057\u3066\u306f\u3001\u8868\u793a\u500d\u7387\u306e\u7570\u306a\u308b\u753b\u50cf\u306b\u5bfe\u3057\u3001\u6bd4\u7387\u304c\u540c\u3058\u81ea\u7531\u66f2\u7dda\u3092\u66f8\u3051\u308b\u3053\u3068\u3092\u78ba\u8a8d\u51fa\u6765\u305f\u306e\u3067\u3001\u3068\u308a\u3042\u3048\u305a\u6210\u529f\u3057\u307e\u3057\u305f\u3002<\/span><br \/>\n<\/span><img loading=\"lazy\" class=\"alignleft size-full wp-image-3244\" src=\"https:\/\/kats-eye.net\/info\/wp-content\/uploads\/2020\/03\/005.png\" alt=\"\" width=\"1698\" height=\"1031\" srcset=\"https:\/\/kats-eye.net\/info\/wp-content\/uploads\/2020\/03\/005.png 1698w, https:\/\/kats-eye.net\/info\/wp-content\/uploads\/2020\/03\/005-300x182.png 300w, https:\/\/kats-eye.net\/info\/wp-content\/uploads\/2020\/03\/005-768x466.png 768w, https:\/\/kats-eye.net\/info\/wp-content\/uploads\/2020\/03\/005-1024x622.png 1024w\" sizes=\"(max-width: 1698px) 100vw, 1698px\" \/><\/span><br \/>\n&nbsp;<br \/>\n<img loading=\"lazy\" class=\"alignleft size-full wp-image-3243\" src=\"https:\/\/kats-eye.net\/info\/wp-content\/uploads\/2020\/03\/004.png\" alt=\"\" width=\"667\" height=\"467\" srcset=\"https:\/\/kats-eye.net\/info\/wp-content\/uploads\/2020\/03\/004.png 667w, https:\/\/kats-eye.net\/info\/wp-content\/uploads\/2020\/03\/004-300x210.png 300w\" sizes=\"(max-width: 667px) 100vw, 667px\" \/><br \/>\n&nbsp;<br \/>\n&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u30de\u30a6\u30b9\u306b\u3088\u308b\u62e1\u5927\u51e6\u7406\u3068\u81ea\u7531\u66f2\u7dda\u63cf\u753b \u3000\u904e\u53bb\uff12\u56de\u3067pictureBox\u3078\u306e\u2460\u81ea\u7531\u66f2\u7dda\u63cf\u753b\u3068\u2461\u63cf\u753b\u753b\u50cf\u62e1\u5927\u3092\u884c\u3044\u307e\u3057\u305f\u3002\u4eca\u56de\u306f\u305d\u308c\u3089\u3092\u540c\u6642\u306b\u5b9f\u884c\u3059\u308b\u30c4\u30fc\u30eb\u3092\u4f5c\u6210\u3057\u307e\u3057\u305f\u3002 \u3000\u79c1\u306b\u3068\u3063\u3066\u306e\u8ab2\u984c\u306f\u3001\u62e1\u5927\u3057\u7570\u306a\u308b\u500d\u7387\u3067\u8868\u793a\u3055\u308c\u3066\u3044 &hellip; <a href=\"https:\/\/kats-eye.net\/info\/2020\/03\/05\/c-mous-dd-04\/\" class=\"more-link\">\u7d9a\u304d\u3092\u8aad\u3080 <span class=\"screen-reader-text\">C# \u30de\u30a6\u30b9\u306b\u3088\u308b\u62e1\u5927\u51e6\u7406\u3068\u81ea\u7531\u66f2\u7dda\u63cf\u753b<\/span> <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":3232,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[75],"tags":[80,89,84],"_links":{"self":[{"href":"https:\/\/kats-eye.net\/info\/wp-json\/wp\/v2\/posts\/3227"}],"collection":[{"href":"https:\/\/kats-eye.net\/info\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/kats-eye.net\/info\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/kats-eye.net\/info\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/kats-eye.net\/info\/wp-json\/wp\/v2\/comments?post=3227"}],"version-history":[{"count":16,"href":"https:\/\/kats-eye.net\/info\/wp-json\/wp\/v2\/posts\/3227\/revisions"}],"predecessor-version":[{"id":3248,"href":"https:\/\/kats-eye.net\/info\/wp-json\/wp\/v2\/posts\/3227\/revisions\/3248"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/kats-eye.net\/info\/wp-json\/wp\/v2\/media\/3232"}],"wp:attachment":[{"href":"https:\/\/kats-eye.net\/info\/wp-json\/wp\/v2\/media?parent=3227"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/kats-eye.net\/info\/wp-json\/wp\/v2\/categories?post=3227"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kats-eye.net\/info\/wp-json\/wp\/v2\/tags?post=3227"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}