C#で画像をグレースケールや半透明に変換するアプリを作ってみた

タイトルの通りです。C#を使って、jpeg画像をグレースケールにしたり、色を反転したり、半透明にしたりするアプリを作ってみました。

目次

  1. どういう流れで処理するか
  2. どうやって実現するか
  3. 作ってみた

どういう流れで処理するか

  1. アプリにjpegファイルをドロップします。

  2. チェックボックスやラジオボタンをいじって、色を変えます。

  3. pngファイルとして保存します。

pngなのは、透明度の情報を付けるためです。

どうやって実現するか

割と今までに試したものの組み合わせでできたりします。 jpegファイルをドラッグアンドドロップでアプリに入力するのは、C#でドロップされたファイルの名前を得る(WPF編 DragOver版)が参考になると思います。ファイル名を取得できれば、C#でBitmapImageをByte配列に変換してみたで画像をバイト配列にできます。 そうしたらC#で画像の色を反転してみたのように配列をいじって色を変えられます。 画像の編集作業が終わったらC#で「名前を付けて保存」ダイアログを使ってみたで保存用のファイル名を取得して、C#で描いた画像をファイルに保存してみたの手順で画像をファイルに保存します。

作ってみた

できあがったものは、こんな感じです。これはすでに画像ファイルをドロップした後の状態です。 image0 グレースケールにするとこんな感じです。 image1 透過させるとこんな感じです。明るいところほど透明に、暗いところほど不透明になるようにしてみました。 image2 「名前を付けて保存」ダイアログを開くとこんな感じです。 image3 保存したファイルが本当に透過するかどうか、試してみました。 PowerPointに不透明なオレンジ色の四角を描き、それに重なるように不透明な青色の四角を描き、それに重ねるように保存した画像ファイルを配置してみました。 image4 不透明な青色が透けて見えてますね。

公開日

広告