Upgrade to Pro — share decks privately, control downloads, hide ads and more …

191112 仕様から、試用して、使用する! はなっちさん

Avatar for RPACommunity RPACommunity
November 12, 2019

191112 仕様から、試用して、使用する! はなっちさん

Avatar for RPACommunity

RPACommunity

November 12, 2019
Tweet

More Decks by RPACommunity

Other Decks in Technology

Transcript

  1. 自己紹介 • 小﨑 肇(こざき はじめ⇒[ハナ]肇⇒はなっち!) • 59歳 昨日... もうすぐ… •

    東京都豊島区⇒神奈川県川崎市中原区 • 趣味 自転車だったけど、最近はINGRESS • 職歴 ➢ かなり前に今の会社に入社。 COBOL⇒JAVA⇒EXCEL-VBA ➢ EXCEL-VBAでは、JP1-REPORTERとか、 SAGENT-REPORTERとか… ➢ UiPath歴は、19ヶ月… ➢ Uipath Japan MVP 2019 認定! Presented By [email protected]
  2. 画像の一部の領域を切り抜くには? 引用元: https://www.atmarkit.co.jp/fdotnet/dotnettips/912bitmapcroprect/bitmapcroprect.html Module Module1 Sub Main() ' 画像を読み込む Dim

    baseFilePath As String = "C:¥bitmapBase.gif" Dim bmpBase As New Bitmap(baseFilePath) ' 画像を切り抜く Dim rect As New Rectangle(20, 90, 450, 100) Dim bmpNew As Bitmap = bmpBase.Clone(rect, bmpBase.PixelFormat) ' 画像をGIF形式で保存 Dim newFilePath As String = "C:¥ bitmapNew.gif" bmpNew.Save(newFilePath, ImageFormat.Gif) ' 画像リソースを解放 bmpBase.Dispose() bmpNew.Dispose() End Sub End Module 画像の切り抜きにはいくつかの方法があるが、Bitmapオ ブジェクトのCloneメソッドを使うと少ない手順で可能だ。 Cloneメソッドの第1パラメータにはRectangle構造体 (System.Drawing名前空間)のオブジェクトを、第2パ ラメータにはPixelFormat列挙体 (System.Drawing.Imaging名前空間)の値を指定する。 引用元: https://www.atmarkit.co.jp/fdotnet/dotnettips/912bitmapcroprect/bitmapcroprect.html
  3. 画像の一部の領域を切り抜くには? 引用元: https://www.atmarkit.co.jp/fdotnet/dotnettips/912bitmapcroprect/bitmapcroprect.html Module Module1 Sub Main() ' 画像を読み込む Dim

    baseFilePath As String = "C:¥bitmapBase.gif" Dim bmpBase As New Bitmap(baseFilePath) ' 画像を切り抜く Dim rect As New Rectangle(20, 90, 450, 100) Dim bmpNew As Bitmap = bmpBase.Clone(rect, bmpBase.PixelFormat) ' 画像をGIF形式で保存 Dim newFilePath As String = "C:¥ bitmapNew.gif" bmpNew.Save(newFilePath, ImageFormat.Gif) ' 画像リソースを解放 bmpBase.Dispose() bmpNew.Dispose() End Sub End Module 代入アクティビティ コードを呼び出し アクティビティ 左辺を指定出来る 左辺がない!
  4. Dim baseFilePath As String = "C:¥bitmapBase.gif" Dim bmpBase As New

    Bitmap(baseFilePath) Dim rect As New Rectangle(20, 90, 450, 100) Dim bmpNew As Bitmap = bmpBase.Clone(rect, bmpBase.PixelFormat) 代入アクティビティ
  5. ? UiPath Forumで質問をしてみる InvokeMethodアクティビティの使い方、設定について こんにちは InvokeMethodアクティビティのMethod名は大文字小文字が 区別されます。 そのためMethod名は“Save“とする必要があります。 InvokeMethodアクティビティは、復帰値を持たないメソッドを呼ぶ際 に使うと思っています。

    今、System.Drawing.Bitmap(元画像ファイル名)で読み込んだBMPファ イルを、bmp.Save(FileName, Format)と、InvokeCodeアクティビティ では保存できるようになったのですが、InvokeMethodアクティビティ で出来ないかと思っていて試行錯誤しています。 云々
  6. 可変要素の問題点は? ➢入力ファイル名 ➢矩形情報  左(Left)  上(Top)  幅(Width) 

    高さ(Height) ➢出力ファイル名 ➢出力形式(BMP,JPG,PNG) ・画像ファイルが存在しなかった。 ⇒確実に存在する仕様とする。異常終了させる ⇒でも存在しなかったら、 どのように結果を返すか? ・ファイルは実在するが、画像ファイルでなかった。 ⇒ファイル拡張子を評価する。 ⇒対象外ファイルだったら、 どのように結果を返すか?
  7. 可変要素の問題点は? ➢入力ファイル名 ➢矩形情報  左(Left)  上(Top)  幅(Width) 

    高さ(Height) ➢出力ファイル名 ➢出力形式(BMP,JPG,PNG) ・左、上が矩形左上座標より小さい ⇒矩形左上座標に合わせる ・左、上が矩形右下座標より大きい ⇒矩形左上座標に合わせる?? ・幅、高さが矩形幅、高さピクセルより大きい ⇒矩形幅、高さピクセルに合わせる
  8. 矩形情報 Dim rect As New Rectangle(Left, Top, Wigth, Height) 0

    Width Leftの決定 … Leftは、0以上であり、Width未満である CorrectedLeft = Math.Min(Math.Max(LowerLimit,Left),UpperLimit) LowerLimit = 0 UpperLimit = ImageWidth ー 1 例えば幅が100で、指定したLeftが -1だったら、 Math.Max(0, -1)=0となり、 Math.Min(0, 99)=0となる。 10だったら、 Math.Max(0, 10)=10となり、 Math.Min(10, 99)=10となる。 99だったら、 Math.Max(0, 99)= 99となり、 Math.Min(99, 99)=100となる。 120だったら、 Math.Max(0, 120)=120となり、 Math.Min(120, 99)=100となる。
  9. 可変要素の問題点は? ➢入力ファイル名 ➢矩形情報  左(Left)  上(Top)  幅(Width) 

    高さ(Height) ➢出力ファイル名 ➢出力形式(BMP,JPG,PNG) ・ファイルの形式ではない ⇒指定者の責任とする? ・入力ファイル名と同じファイル名 ⇒オリジナル画像を壊すのは忍びない ・出力ファイルが既に存在する。 ⇒上書きしてしまってよいか? ⇒ファイル名の後ろに(連番)を挿入するか?
  10. 可変要素の問題点は? ➢入力ファイル名 ➢矩形情報  左(Left)  上(Top)  幅(Width) 

    高さ(Height) ➢出力ファイル名 ➢出力形式(BMP,JPG,PNG) ・出力形式の指定は簡単ではない ⇒ImageFormatさえ入力できれば、候補値が出る。 ┗→指定させられるか? ⇒入力ファイルと同じ形式でよい? ┗→扱おうとしたファイルはなんだったか?
  11. 最終的な仕様 ➢入力ファイル名 存在する前提とする。存在しない場合は異常終了 ➢矩形情報  左(Left) 0より小さい、幅-1、高さ-1より大きい  上(Top) ⇒(0,0)位置を基点とする

     幅(Width) 1より小さい、幅、高さより大きい  高さ(Height) ⇒(幅,高さ)-(基点Left,基点Top)とする ➢(出力)出力ファイル名 ⇒入力ファイル名に本日時刻を付加とする ⇒画像形式は、入力と同じとする ⇒その為、指定させない。 結果!