レイヤーを使った簡単な画像編集ソフトに矩形を挿入します。矩形は回転も可能で内部を塗りつぶすことも可能です。

矩形をつくるためには境界線の色、塗りつぶすのであれば内部の色、回転角、縦、横の長さを指定する必要があります。回転する場合は矩形そのものの縦横だけでなく、表示されるBitmapの縦横も考えないといけません。

まずレイヤーを管理するクラスを作成します。

矩形を描画するのであれば矩形の幅と高さがわかれば描画できます。ただこの矩形は回転することもあります。そこでRotateRectangle(Rectangle rect, Color color, Color innerColor, int angle, bool isHighQuality)メソッドで回転した状態の矩形が描画されたBitmapを取得するメソッドを作成します。

そしてその戻り値をフィールド変数_bitmapに格納します。Bitmapプロパティは_bitmap == nullでなければ_bitmapをそのまま返します。RectangleWidthプロパティ、RectangleHeightプロパティ、SelectColorArgbプロパティ、SelectInnerColorArgbプロパティ、Angleプロパティに値がセットされるとRotateRectangle(Rectangle rect, Color color, Color innerColor, int angle, bool isHighQuality)メソッドが実行されるため、Bitmapプロパティから矩形が描画されたBitmapを取得することができます。

RectangleLayer.Bitmapプロパティで得られたBitmapをそのまま表示することはできません。これとは別にフィールド変数 WidthやHeightの影響もうけるからです。これに関する処理はダイアログのなかでおこないます。

今回は矩形を挿入するために必要なレイヤーのクラスを作成しました。次回はダイアログを表示させて編集中の画像のなかに矩形を表示させる処理をおこないます。

矩形を挿入するためにダイアログを表示させる レイヤーを使った簡単な画像編集ソフト