[2223] Re: 画像の垂直(水平)反転処理の方法

投稿日 2018/09/08(Sat) 09:40:04
投稿者 通りすがり
参照先

プロデルデザイナの、機能タブから見ると、画像を回転する命令っぽいものはあるようです。

命令が無い前提とすると、可能ならば.Net Frameworkの機能を調べて、機能が存在するようならドットネット系の命令で利用するのが良いと思います。ほしい機能が汎用的なものであるのであれば、要望として挙げるのも1つの手だと思います。
(今回の機能であれば、System.Drawing.Image(か、それを継承しているSystem.Drawing.Bitmap)の、RotateFlipが該当しそうです。プロデルの回転の命令もこの機能を使用しているっぽい動きをしてますね)

以下、パラメータに対してどう動くのか確認するためのプログラムです。
最初の行の画像ファイル名は書き換えてください。
以下の2つの命令があるようです。有効なパラメータを手当たり次第に調べてたら時間かかりました(リファレンスに載ってない?)
・Flip/Mirrorができない代わりに、細かい角度指定が可能で、新たに生成された画像が返られる命令。
・Flip/Mirrorと回転が同時に行える代わりに、90度単位(0,90,180,270)でしか回転できず、元の画像自身が変更される命令。回転角度を0にすれば、Flip/Mirrorの効果だけ使うことも可能。
 ※文字列引数に右回転とか時計回りと書きたくなるのですが、回転方向ではなく、Flip/Mirror方向を指定するようです。
-------------------
【画像ファイル名:文字列】は、「d:\nako\cap_black.png」
メイン画面を表示
待機
終了

メイン画面とは
 ウィンドウを継承
 ではじめの手順
  この幅は、340
  この内容は、「画像方向で回転するです」
  画像1という画像(画像ファイル名)を作る
  選択リスト1という選択リストを作る
   その位置と大きさは、{0,0,60,20}
   その入力可能は、×
   それへ{0,90,180,270,999}を一括追加する
  選択リスト2という選択リストを作る
   その位置と大きさは、{70,0,100,20}
   その入力可能は、×
   それへ{「水平方向」,「垂直方向」,「水平垂直方向」,「回転」,「でたらめ」,「省略」}を一括追加する
  テキスト1というテキストを作る
   その位置と大きさは、{0,20,300,20}
   その読み取り専用は、○
  ボタン1というボタンを作る
   その位置と大きさは、{0,40,60,24}
   その内容は、「適用!」
  ピクチャー1というピクチャーを作る
   その位置は、{0,70}

  命令を更新する
  ピクチャー1の画像は、画像1
 終わり
 命令を更新する手順
  もし、テキスト1<>無なら、
   もし、選択リスト2の内容=「省略」なら、
    テキスト1の内容は、「画像方向で画像1を[選択リスト1の内容]だけ回転する」
   違えば、
    テキスト1の内容は、「画像方向で画像1を[選択リスト1の内容]だけ[「][選択リスト2の内容][」]へ回転する」
   もし終わり
  もし終わり
 終わり
 選択リスト1が変更された時の手順
  命令を更新する
 終わり
 選択リスト2が変更された時の手順
  命令を更新する
 終わり
 ボタン1がクリックされた時の手順
  もし、選択リスト2の内容=「省略」なら、
   '元画像は変化しない。回転した画像が返却される。
   画像1は、画像1を(選択リスト1の内容)だけ画像方向で回転する
  違えば、
   '元画像が回転する。さらに、元画像自身が返される。
   画像1は、画像1を(選択リスト1の内容)だけ(選択リスト2の内容)へ画像方向で回転する
  もし終わり
  ピクチャー1の画像は、画像1
 終わり
終わり
-----
もし、ロジックで行うのでしたら、半分の高さor幅までのループで点の色を入れ替えながら処理するとよいと思います。また、画像に対して、色を取得することと、(色を)設定することが可能なので、この機能で画像自体を参照しながら書き換えるのが良いかと思います。


関連一覧ツリー

をクリックするとツリーを一括表示します)

返信フォーム

(この投稿に返信する場合は下記フォームから投稿して下さい)
(1MBまで)
(英数字で8文字以内)

- 投稿修正/削除フォーム -
処理 No パスワード

▲ページの先頭へ

- WebForum -