前質問からの必要コードを記載します
C#
1clsConst.cs全文 2using System.Drawing; 3using System.Windows.Forms; 4namespace BoardInspection 5{ 6 /// <summary> 7 /// 共通で使用する定義 8 /// </summary> 9 public static class clsConst 10 { 11 /// <summary> 12 /// 画像の表示モード 13 /// </summary> 14 public enum ZOOM_MODE 15 { 16 /// <summary> 17 /// 等倍 18 /// </summary> 19 FULL_SIZE = 0, 20 /// <summary> 21 /// 中間 22 /// </summary> 23 HALF = 1, 24 /// <summary> 25 /// パネルのサイズに合わせる 26 /// </summary> 27 FIT_TO_PIC = 2 28 } 29 /// <summary> 30 /// 画像の表示モード 31 /// </summary> 32 public enum SELECT_MODE 33 { 34 /// <summary> 35 /// モードなし 36 /// </summary> 37 NONE = 0, 38 /// <summary> 39 /// 領域の追加 40 /// </summary> 41 ADD_AREA = 1, 42 /// <summary> 43 /// 点の追加 44 /// </summary> 45 ADD_POINT =2, 46 /// <summary> 47 /// 領域、点の移動 48 /// </summary> 49 MOVE = 3, 50 /// <summary> 51 /// 領域、点の削除 52 /// </summary> 53 DELETE = 4 54 } 55 /// <summary> 56 /// 領域の形 57 /// </summary> 58 public enum SHAPE_TYPE 59 { 60 /// <summary> 61 /// 指定なし 62 /// </summary> 63 NONE = -1, 64 /// <summary> 65 /// 長方形 66 /// </summary> 67 RECT = 0, 68 /// <summary> 69 /// 円 70 /// </summary> 71 CIRCLE = 1, 72 /// <summary> 73 /// 多角形 74 /// </summary> 75 POLYGON = 2, 76 } 77 /// <summary> 78 /// 画像サイズを変更する 79 /// </summary> 80 /// <param name="pic">張り付けるピクチャーボックス</param> 81 /// <param name="ratio">表示倍率</param> 82 public static void ChangePictureSize(PictureBox pic, double ratio) 83 { 84 if (pic.Image != null && 0 < pic.Image.Height && 0 < pic.Image.Width) 85 { 86 pic.Height = (int)(pic.Image.Height * ratio); 87 pic.Width = (int)(pic.Image.Width * ratio); 88 } 89 } 90 /// <summary> 91 /// 画像サイズを変更する 92 /// </summary> 93 /// <param name="pic">張り付けるピクチャーボックス</param> 94 /// <param name="picture">張り付ける画像</param> 95 /// <param name="ratio">表示倍率</param> 96 public static void ChangePictureSize(PictureBox pic, Image picture, double ratio) 97 { 98 if (0 < picture.Height && 0 < picture.Width) 99 { 100 pic.Height = (int)(picture.Height * ratio); 101 pic.Width = (int)(picture.Width * ratio); 102 if (pic.Image != null) 103 { 104 pic.Image.Dispose(); 105 pic.Image = null; 106 } 107 Image newImage = new Bitmap(pic.Width, pic.Height); 108 109 Graphics gr = Graphics.FromImage(newImage); 110 gr.DrawImage(picture, 0, 0, pic.Width, pic.Height); 111 gr.Dispose(); 112 pic.Image = newImage; 113 } 114 } 115 /// <summary> 116 /// 画像の拡大モードを変更する 117 /// </summary> 118 /// <param name="e">マウスイベントの情報</param> 119 /// <param name="zoomMode">表示モード</param> 120 public static void ChangeZoom(MouseEventArgs e, ref int zoomMode) 121 { 122 if (Control.ModifierKeys == Keys.Control) 123 { 124 if (e.Button == MouseButtons.Left) 125 { 126 // 拡大 127 if ((int)clsConst.ZOOM_MODE.FULL_SIZE < zoomMode) 128 { 129 zoomMode--; 130 } 131 } 132 else if (e.Button == MouseButtons.Right) 133 { 134 // 縮小 135 if (zoomMode < (int)clsConst.ZOOM_MODE.FIT_TO_PIC) 136 { 137 zoomMode++; 138 } 139 } 140 } 141 } 142 /// <summary> 143 /// 画像の表示倍率を計算する 144 /// </summary> 145 /// <param name="ImageSize">画像のサイズ</param> 146 /// <param name="PanelSize">ピクチャーボックスを格納しているパネル</param> 147 /// <param name="zoomMode">表示モード</param> 148 /// <returns></returns> 149 public static double CalcRatio(Size ImageSize, Size PanelSize, int zoomMode) 150 { 151 // 等倍 あるはイメージがパネルより小さい場合 152 if (zoomMode == (int)ZOOM_MODE.FULL_SIZE || (ImageSize.Width<= PanelSize.Width && ImageSize.Height <= PanelSize.Height)) 153 { 154 return 1.0; 155 } 156 else 157 { 158 // 最大サイズ 159 int MaxWidth = ImageSize.Width; 160 int MaxHeight = ImageSize.Height; 161 // ピッタリにすると、スクロールバーが残るから少し小さめに 162 int MinWidth = PanelSize.Width - 5; 163 int MinHeight = PanelSize.Height - 5; 164 // パネルに合わせたときの比率を計算する 165 double RatioX = MinWidth / (double)MaxWidth; 166 double RatioY = MinHeight / (double)MaxHeight; 167 // フィットする場合 168 if (zoomMode == (int)ZOOM_MODE.FIT_TO_PIC) 169 { 170 if (RatioY < RatioX) 171 { 172 return RatioY; 173 } 174 else 175 { 176 return RatioX; 177 } 178 } 179 else 180 { 181 if (RatioY < RatioX) 182 { 183 return (RatioY + 1.0) / 2.0; 184 } 185 else 186 { 187 return (RatioX + 1.0) / 2.0; 188 } 189 } 190 } 191 192 } 193 } 194}
同じ質問を何度も作るのはやめて元の質問を編集してください。
次に同じ質問をされた場合は連続投稿として通報します。
昨日から何度も編集していますが反映されないので
この質問から見た人が意味を分かると思いますか?
「編集してるけど反映されない」わけがないですし(やり方が悪いのではないかと)
BluOxyさんのような感想しか持ちません。どうしてもされないというのでしたら勝手に質問をしめて勝手に新しく質問をあげるのではなく、運営に状況連絡してください。そのつもりはなくても荒らしのような印象を受けます。
質問や回答は文字数制限があります。その可能性は確認しましたか?
もしオーバーするようであれば質問の提示の仕方(例えばコードをミニマムにしたり、別のサービスにアップしたり)工夫することで対応可能です。
自己判断だけでやっつけるのは非常に良くないです。
どうしたいのか
何が起こっているのか
どこまで詰まってることに対して調べたのか
を記述いただけないと回答は到底不可能かと思います