4
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

画像の Base64 変換。Apps でデコードツールをつくってみる

Last updated at Posted at 2023-09-19

本記事では画像や文字を他のデータ形式に変換してくれるアクティビティ(Encode & Decode Activities)と UiPath Apps をつかった画像のデコードツールの作り方を紹介します。
はーと.png
を Base64 という形式の文字列に変換すると

iVBORw0KGgoAAAANSUhEUgAAACUAAAAjCAIAAACcpVRJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAE7SURBVFhH5Zc9EoIwEEa9/2E8ARdInYKCOmUaCtr1g6BmN1lINNEZfbONzsJjl/xxoc/yv755IefITGs4v/7UWDP9M+b97yw53+xoMHRNw9Lo95wAHiibOUyaNfGNVl4sYr/XQuYs04U7MrjPTfKafFilASJsWmXsW8ruUhODrDHylRZXGdwY+UyS2iQMG2IPn5d5rYK3tL/vOu2GjbsPc07mtQo2Sr/l69jPT/uy7w90mg/K+CxYOV+LkW0ska9LS1kzQezrUCIvDnBf2yU7WayB8AHfSCk7GUh94O0qsScrZH2gYPvWgm8IAs23Ub0jWnL6sWrj0Afm4tepn5FiznyB03kizm06ZT6gbiCZQ9EBxT6A3kpZUQ9janyAKesqC1T6wKOxmdXjnHofwAfDwefEIS/53uC3fUQ3aVbgpAsXEskAAAAASUVORK5CYII=

こうなります↑↑

不思議ですよねー 後で書きますが、この文字列からちゃんと画像を復元できるんです(◎_◎;)
HTTP通信では、画像データを一度この Base64 形式に変換して送受信するんですね

「Encode & Decode Activities」
パッケージ(UiPathTeam.EncodeActivities.Activities.Desigin)をインストールすると、こちらの4つのアクティビティが現れます↓↓
e059a3c0-c6ab-4072-b10c-1b829e9368bf.png
本日は画像操作の以下のアクティビティを紹介します。

  • Decode Image from Base64
  • Image to Base64

使い方は至極簡単

まずは 画像の Base64 文字列化 から

画像のエンコード_デコード2.JPG
変換対象の画像のファイルパスと出力変数を指定する、たったこれだけ
画像のエンコード_デコード3.JPG
上の画像で試すと、出力パネルに長大な呪文が出現↓↓
画像のエンコード_デコード4.JPG

次に Base64 文字列から画像化

画像のエンコード_デコード6.JPG
こちらも先の出力文字列と保存先のファイルパスを指定するだけ
画像のエンコード_デコード5.JPG
上左図が Base64 文字列から戻した画像 / 上右図は元画像

見た目はもちろん、プロパティのイメージ情報をみるに同じ画像データが復元されています。

Base64 文字列への関心が高まってちょっと追い検証しました↓
エンコード遊び8.JPG
エンコード遊び9.JPG
エンコード遊び10.JPG
当然といえば当然ですが、サイズや情報量は小さい・少ないほど文字列は短くなります。

こちらの画像(実寸)で変換かけると
カフェ・ラテ191_255.jpg
3万2千409文字
エンコード遊び2.JPG
この Base64 文字列は以下の様なデコードサイトでも簡単に復元できます。

エンコード遊び4.JPG
ちなみに、UiPath の Apps でもこんなに簡単に作れます↓↓
エンコード遊び7-2.JPG

UiPath Apps でのデコードツールの作り方(Base64 文字列 → 画像)

  1. 「Textarea」と「Label」を配置
  2. 「Textarea」のイベントで「Textarea」の入力内容を「Label」に補完するよう設定

エンコード遊び6.JPG
補完する値(Value)は以下の様にしてください↓

="<img decoding='async' src='data:image/png;base64,"&Textarea&"' alt='base64 sample'>"

エンコード遊び5.JPG
備考:上記は「Textarea」の値を入れるため、&Textarea&となってますが、他の変数で指定する際のために「変数」をどこで作成するか補足します。リソースパネルの一番下です!
エンコード遊び5-2.JPG

いかがでしたでしょうか?
専用パッケージのインストールや Apps を使えば画像操作もこんなに簡単におこなえます☀
Base64 文字列を分割して、社内レクのクイズ素材にして遊んでも面白そうですよね
(文字列を集めて、正しい順序で並べてデコードすれば答えのメッセージ画像が出現する的な遊び)

UiPath は無料で使えます!興味が湧いた方は是非こちらをクリック↓↓

4
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?